Контроль базовых цен 1С 7.7
Платформа: Оперативный учет 7.7
Конфигурация: Типовая ТиС, ред.9.2
Тип: Контроль цен
Назначение:
— Контроль изменения базовых цен за указанный период.
Часто, особенно на этапе «становления» фирмы/конфигурации, идёт долгая «притирка» ценовой политики. Начальство ходит и орет: «Откуда здесь такая цена, когда её поставили?» или что-нибудь подобное.
Этот отчёт ведёт протокол изменения базовых цен посуточно.
Общее описание:
— за указанный период выводятся таблица: по вертикали номенклатура, по горизонтали — дни. (в каждой ячейке цена с её изменениями по дням).
— Уменьшившаяся цена — красная ячейка,
— Увеличившаяся цена — зеленая ячейка,
— Появившаяся цена — желтая ячейка (появилась новая номенклатура)
Такая таблица, легко поможет отследить ситуацию с поведением цен.
Предусмотрен «краткий» и «полный» вывод отчета (по умолчанию) — для больших периодов — «краткий».
Обработка может вызываться как интерактивно пользователем, так и программно, с передачей входных параметров.
Типовое использование данной обработки:
Запускается автоматически, один раз в день при запуске конфигурации или после проведения «регламентных» работ (Допустим, произошло программное обновление цен. Для этого необходимо запустить обработку вручную).
Входные данные:
При вызове интерактивно пользователем:
а) Указать период контроля;
б) Заполнить таблицу базовых цен;
в) Отметить нужные из списка базовых цен
г) Сформировать отчет.При вызове программно:
Входные параметры передаются через СписокЗначений(Значение,Представление)
а) Представление = «Цена», Значение = тип элемент справочника «ТипыЦен» или список значений с элементами справочника ТипыЦен (передаваться должны только базовые цены!!!)
б) Представление = «РежимВыполнения», Значение = Тип «строка»
Значение = «std» — стандартный
Значение = «day» — один раз в сутки
Значение = «rul» — протокол после проведения регламентных работв) Представление = «Режим», Значение = Тип «Число»
Значение = -2 сформировать протокол и распечатать
Значение = -1 только сформировать протокол
Значение = 0 только показать
Значение = 1 открыть диалог ввоода данныхг) Представление = «ДатаКонтроля», Значение = Тип «дата»
Значение = какая-то дата, контроль базовых цен будет произведен от предыдущей даты контроля (сохраняется в настройках) до указанной даты включительно.д) Представление = «ДопЗаголовок», Значение = Тип «строка»
Значение = произвольный текст, будет помещен в заголовок отчета. Если параметр опущен, тогда программа пытается сама определить значение параметра (исходя из типовых установок и режима выполнения).При вызове программы, предыдущая дата контроля, берётся из файла КаталогИБ()\БВК_ДатаКонтроляБазовыхЦен.cfg — (создаётся автоматически, при первом запуске и хранит дату последнего запуска процедуры).
Выходные данные:
Таблица 1С (MXL)
а) При интерактивном вызове пользователя выводится на экран (если надо сохранить — пользователь должен сделать это сам);
б) При вызове программно — зависит от значения «Режим«, если сохраняется, то сохранение идёт в каталог PCBC.DIR (ProtocolControlBaseCosts), по пути КаталогИБ()\PROTOCOLS.DIR PCBC.DIR\ (каталоги создаются автоматически), имя файла строится по шаблону: Режим_МеткаДатыКонтроля_МеткаДатыВыполнения_МеткаВремениВыполнения.MXL например:
day_050712_050712_0020.mxl
rul_050714_050714_2308.mxl
std_050716_050716_1613.mxl
Установка:
Установить следует в качестве внешнего отчёта.
Замечания:
ВНИМАНИЕ!!! При первом запуске обработки, контроль базовых цен будет произведен с начала текущего месяца (что может быть не так быстро, см.след пункт);
— в зависимости от размера справочника номенклатуры и количества базовых цен, отчёт может формироваться продолжительное время, например: порядка 8000 номенклатуры для 3 базовых цен за период 13-15.07.2005, отчёт на Атлоне 2200+ формировался порядка 2.5 мин.
ВНИМАНИЕ! При программном вызове обработки, установки множественного фильтра, игнорируются!
ВНИМАНИЕ! При программном вызове обработки «красота» отключается (для ускорения выполнения кода). При необходимости — внесите исправления в код процедуры ПриОткрытии().
— во время формирования отчета в подсказку выводится кратенькая инфа, чтобы пользователь сообразил, что комп не висит, а считает…
— сформированный файл (таблица) м.б. открыты в экселе — анализируйте и стройте графики, какие хотите…
Пример использования:
Вставка в процедуру ПриНачалеРаботыСистемы()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// глРыночнаяЦена - ссылка на элемент справочника "ТипыЦен", базовая цена // глЗакупочнаяЦена - ссылка на элемент справочника "ТипыЦен", базовая цена // при использовании - переделать под свои нужды! //Контроль изменения базовых цен БВК_СписокКонтролируемыхЦен=СоздатьОбъект("СписокЗначений"); //список контролируемых цен БВК_СписокКонтролируемыхЦен.ДобавитьЗначение(глРыночнаяЦена); //по умолчанию: рыночная БВК_СписокКонтролируемыхЦен.ДобавитьЗначение(глЗакупочнаяЦена); //по умолчанию: закупочная БВК_СписокПараметров=СоздатьОбъект("СписокЗначений"); БВК_СписокПараметров.ДобавитьЗначение(БВК_СписокКонтролируемыхЦен,"Цена"); //список контролируемых цен БВК_СписокПараметров.ДобавитьЗначение("day","РежимВыполнения"); //регламентные работы БВК_СписокПараметров.ДобавитьЗначение(-1,"Режим"); //только сохранить протокол, без показа, без печати БВК_СписокПараметров.ДобавитьЗначение(РабочаяДата(),"ДатаКонтроля"); //дата контроля БВК_СписокПараметров.ДобавитьЗначение("автоматический контроль изменения базовых цен при первом старте программы "+РабочаяДата(),"ДопЗаголовок"); ОткрытьФормуМодально("Отчет",БВК_СписокПараметров,КаталогИБ()+"ExtForms\КонтрольБазовыхЦен.ert"); |
Допустим, у нас есть «прайс-аналит», раз в день подгружающий прайсы поставщиков и на их основе устанавливающий некие базовые цены:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
//...тут установка базовых цен по некоему алгоритму // //ПИШЕМ ВСЁ В ПРОТОКОЛ БВК_СписокКонтролируемыхЦен=СоздатьОбъект("СписокЗначений"); //список контролируемых цен БВК_СписокКонтролируемыхЦен.ДобавитьЗначение(глРыночнаяЦена); //по умолчанию: протоколируем рыночную БВК_СписокПараметров=СоздатьОбъект("СписокЗначений"); БВК_СписокПараметров.ДобавитьЗначение(БВК_СписокКонтролируемыхЦен,"Цена"); //список контролируемых цен БВК_СписокПараметров.ДобавитьЗначение("rul","РежимВыполнения"); //после регламентных работ БВК_СписокПараметров.ДобавитьЗначение(-1,"Режим"); //только протокол, можно поставить 0 - тогда показ на экран БВК_СписокПараметров.ДобавитьЗначение(ДатаЦен,"ДатаКонтроля"); //дата контроля БВК_СписокПараметров.ДобавитьЗначение("установка рыночных цен на "+ДатаЦен,"ДопЗаголовок"); ОткрытьФормуМодально("Отчет",БВК_СписокПараметров,КаталогИБ()+"ExtForms\КонтрольБазовыхЦен.ert"); //ПИШЕМ ВСЁ В ПРОТОКОЛ |