Контроль базовых цен 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"); //ПИШЕМ ВСЁ В ПРОТОКОЛ |