Акции и праздники в ЧекККМ

29.10.12

Учетные задачи - Печатные формы

Для Розницы 1.0 при записи чека просматривается регистр сведений на предмет акций, и вписывается в комментарий чека.

Скачать исходный код

Наименование Файл Версия Размер
конфа с изменениями
.cf 24,06Mb
9
.cf 24,06Mb 9 Скачать
архив с файлами конфигурации(только модуль чека и регистр)
.rar 26,31Kb
2
.rar 26,31Kb 2 Скачать

Добрый день, кого заинтересовало.

Накопилось конечно много за годы работы, но вот решил начать с простого.

Понадобилось клиенту в шаблон чека вставлять текст различный. Я предложил ему свое виденье и вот что получилось.

Добавил регистр сведений периодический в день с измерением магазин(справочник.магазин) и ресурсом текстовым(Праздник).

Еще реквизит создатель(справочник.пользователи) для удобства разбора полетов.

 

В Сервис добавил строчку для вызова формы списка регистра сведений.

На форме добавил кнопочку акция для вызова формы, которое облегчает занесение данных в регистр. Не руками ж нам все это вбивать

вбиваем период вручную, или с помощью кнопки период.

Текст акции. и список магазинов. Можно через подбор наколотить.

Затем жмакаем на кнопку создать акцию и проставляются строки в регистре.

Вообще-то реализован пакетный ввод, то есть можно открыть форму и нажать создать акцию, система сама предложит заполнить нужную информацию.

КОД:

Процедура ПериодНажатие()
    НастройкаПериода = новый НастройкаПериода;
    НастройкаПериода.УстановитьПериод(НачалоАкции, ?(КонецАкции = '0001-01-01', КонецАкции, КонецДня(КонецАкции)));
    НастройкаПериода.РедактироватьКакИнтервал = Истина;
    НастройкаПериода.РедактироватьКакПериод = Истина;
    НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
    Если НастройкаПериода.Редактировать() Тогда
        НачалоАкции = НастройкаПериода.ПолучитьДатуНачала();
        КонецАкции = НастройкаПериода.ПолучитьДатуОкончания();
    КонецЕсли;
КонецПроцедуры

Процедура НачалоАкцииПриИзменении(Элемент)
    Если КонецАкции = '00010101' или КонецАкции
        НачалоАкции = НачалоДня(НачалоАкции);
        КонецАкции = НачалоДня(НачалоАкции);
        
    Иначе
        НачалоАкции = НачалоДня(НачалоАкции);
        
    КонецЕсли;
КонецПроцедуры

Процедура СоздатьАкциюЕКНажатие(Элемент)
    создаем = Ложь;
    Если Стрдлина(сокрлп(праздник)) = 0 тогда
        Предупреждение("Текст АКЦИИ не введен!");
        
    иначе
        если Магазины.Количество() = 0 тогда
            Ответ = КодВозвратаДиалога.Да;
            Режим = РежимДиалогаВопрос.ДаНет;
            
            пока Ответ = КодВозвратаДиалога.да цикл
                формамагазинов = Справочники.Магазины.ПолучитьФормуВыбора();
                ВыбралиМагазин = формамагазинов.ОткрытьМодально();
                Если ВыбралиМагазин = Неопределено Тогда
                    Текст = "ru = ""Нажмите на магазин два раза для выбора! Попробуете еще раз?"";"
                        + " en = ""Do you want to continue?""";
                Иначе
                    Магазины.Добавить(ВыбралиМагазин);
                    Текст = "ru = ""добавить еще магазин?"";"
                        + " en = ""Do you want to continue?""";
                КонецЕсли;
                Ответ = Вопрос(НСтр(Текст), Режим, 0);
            конецЦикла;
            создаем = ?(Магазины.Количество() = 0, Ложь, Истина);
        Иначе
            создаем = Истина;
        конецесли;
        
        Если НачалоАкции <> '00010101' и КонецАкции <> '00010101' then
            
        else
            Сообщить("Выберите период!");
            ПериодНажатие();
        КонецЕсли;
        Если НачалоАкции <> '00010101' и КонецАкции <> '00010101' then
            
        else
            Сообщить("Период не выбран!");
            создаем = Ложь;
        КонецЕсли;
        
        Если создаем Тогда
            Если год(КонецАкции) > Год(НачалоАкции) Тогда
                ДнейВАкции = ДеньГода(КонецАкции) - ДеньГода(НачалоАкции) + (ДеньГода(КонецГода(КонецАкции)));
            Иначе
                ДнейВАкции = ДеньГода(КонецАкции) - ДеньГода(НачалоАкции);
            КонецЕСли;
            
            //Для Строка=1 по магазины.количество() Цикл
            Для каждого Магазин из магазины.ВыгрузитьЗначения() Цикл
                Для ДатаАкции = 0 по ДнейВАкции Цикл
                    ДеньАкции = НачалоАкции + ДатаАкции * 24 * 60 * 60;
                    Акции = РегистрыСведений.ПраздниковИАкций;
                    НаборЗнач = Акции.СоздатьНаборЗаписей();
                    НаборЗнач.Отбор.Период.Установить(ДеньАкции, Истина);
                    НаборЗнач.Отбор.Магазин.Установить(Магазин, Истина);
                    НаборЗнач.Прочитать();
                    Если НаборЗнач.Количество() = 0 Тогда
                        
                        Запись = НаборЗнач.Добавить();
                        запись.Магазин = Магазин;
                        запись.Праздник = Праздник;
                        запись.Период = ДеньАкции;
                        запись.Создатель = ПараметрыСеанса.ТекущийПользователь;
                    ИначеЕсли НаборЗнач.Количество() = 1 Тогда
                        //Запись = НаборЗнач[0];
                        //запись.Праздник = Праздник;
                        //запись.Создатель = ПараметрыСеанса.ТекущийПользователь;
                        НаборЗнач[0].Праздник = Праздник;
                        НаборЗнач[0].Создатель = ПараметрыСеанса.ТекущийПользователь;
                    КонецЕсли;
                    НаборЗнач.Записать(Истина);
                    НаборЗнач.Очистить();
                КонецЦикла;
            КонецЦикла;
        Иначе
            Сообщить("Не все так гладко, проверьте данные.");
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

Процедура УдалитьНажатие(Элемент)
    создаем = Ложь;
    Если сокрлп(праздник) = 0 тогда
        сообщить("Поле АКЦИЯ пусто!");
    иначе
        если Магазины.Количество() = 0 тогда
            Ответ = КодВозвратаДиалога.Да;
            Режим = РежимДиалогаВопрос.ДаНет;
            
            пока Ответ = КодВозвратаДиалога.да цикл
                формамагазинов = Справочники.Магазины.ПолучитьФормуВыбора();
                ВыбралиМагазин = формамагазинов.ОткрытьМодально();
                Если ВыбралиМагазин = Неопределено Тогда
                    Текст = "ru = ""Нажмите на магазин два раза для выбора! Попробуете еще раз?"";"
                        + " en = ""Do you want to continue?""";
                Иначе
                    Магазины.Добавить(ВыбралиМагазин);
                    Текст = "ru = ""добавить еще магазин?"";"
                        + " en = ""Do you want to continue?""";
                КонецЕсли;
                Ответ = Вопрос(НСтр(Текст), Режим, 0);
            конецЦикла;
            создаем = ?(Магазины.Количество() = 0, Ложь, Истина);
        Иначе
            создаем = Истина;
        конецесли;
    КонецЕсли;
    Если НачалоАкции <> '00010101' и КонецАкции <> '00010101' then
        
    else
        Сообщить("Выберите период!");
        ПериодНажатие();
    КонецЕсли;
    Если НачалоАкции <> '00010101' и КонецАкции <> '00010101' then
        
    else
        Сообщить("Период не выбран!");
        создаем = Ложь;
    КонецЕсли;
    Если создаем Тогда
        Если КонецАкции ДнейВАкции = ДеньГода(КонецАкции) - ДеньГода(НачалоАкции) + (ДеньГода(КонецГода(КонецАкции)));
        Иначе
            ДнейВАкции = ДеньГода(КонецАкции) - ДеньГода(НачалоАкции);
        КонецЕСли;
        
        //Для Строка=1 по магазины.количество() Цикл
        Для каждого Магазин из магазины.ВыгрузитьЗначения() Цикл
            Для ДатаАкции = 0 по ДнейВАкции Цикл
                ДеньАкции = НачалоАкции + ДатаАкции * 24 * 60 * 60;
                Акции = РегистрыСведений.ПраздниковИАкций;
                НаборЗнач = Акции.СоздатьНаборЗаписей();
                НаборЗнач.Отбор.Период.Установить(ДеньАкции, Истина);
                НаборЗнач.Отбор.Магазин.Установить(Магазин, Истина);
                НаборЗнач.Прочитать();
                Если НаборЗнач.Количество() = 1 Тогда
                    НаборЗнач.Удалить(0);
                    НаборЗнач.Записать(истина);
                ИначеЕсли НаборЗнач.Количество() > 1 Тогда
                    Для индекс = 0 по НаборЗнач.Количество() Цикл
                        НаборЗнач.Удалить(индекс);
                    КонецЦикла;
                    НаборЗнач.Записать(истина);
                КонецЕсли;
                НаборЗнач.Очистить();
            КонецЦикла;
        КонецЦикла;
    Иначе
        Сообщить("Не все так гладко, проверьте данные.");
    КонецЕсли;
КонецПроцедуры

Также реализовано удаление записей по магазину и периоду.

Для перезаписи достаточно указать новое наименование акции период/магазин и нажать создать.

Затем в ЧекККМ при записи создаем код смотрим новый ли это документ и заносим отталкиваясь от даты документа его строчку.

Если не этотобъект.проведен Тогда
    Акции = РегистрыСведений.ПраздниковИАкций;
    НаборЗнач = Акции.СоздатьНаборЗаписей();
    НаборЗнач.Отбор.Период.Установить(НачалоДня(этотобъект.дата), Истина);
    НаборЗнач.Отбор.Магазин.Установить(этотобъект.Магазин, Истина);
    НаборЗнач.Прочитать();
    Если НаборЗнач.Количество() = 1 Тогда
        этотобъект.Комментарий = НаборЗнач[0].праздник;
    КонецЕсли;
КонецЕсли;

 

См. также

Автоматический заказ поставщику в 1С: загрузка прайсов и анализ цен поставщиков для УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розница 2

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом.

28500 руб.

21.04.2017    90929    108    40    

197

ККТ-ОНЛАЙН 54-ФЗ: Обработка для работы онлайн касс АТОЛ, ШТРИХ, VIKI PRINT и т.д. МАРКИРОВКА (Разрешит. режим) + ЭКВАЙРИНГ + БЕСПЛАТНЫЙ ДЕМО

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия 1.6 1С:Бухгалтерия автономного учреждения 1С:CRM ПРОФ, КОРП Россия Платные (руб)

Универсальная обработка для обслуживания любых фискальных регистраторов (ККТ), в том числе Веб сервер АТОЛ. Работает в соответствии с 54-ФЗ. (ФФД 1.0, ФФД 1.05, ФФД 1.1). Подключайте любую онлайн кассу к практически любой конфигурации. Нет необходимости обновлять 1С. Можно бесплатно скачать и протестировать. Может работать одновременно с несколькими онлайн-кассами, либо одной с разных рабочих мест. (через RDP, TCP\IP или веб-сервер) Позволяет разделить один чек сразу на несколько ККТ или на несколько систем налогообложения. Поддерживает разрешительный режим. Можно настроить собственный шаблонов чека. Можно использовать эквайринг там, где он не поддерживается. Работает на LINUX и Windows ЭМУЛЯТОР + ЭКВАЙРИНГ + МАРКИРОВКА + ПОДДЕРЖКА ФФД 1.2

6000 руб.

27.02.2017    766432    4694    9501    

2792

ЕГАИС++. Опт, производство, импорт

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Рестораны, кафе и фаст-фуд Россия Бухгалтерский учет Управленческий учет Акцизы Платные (руб)

Полнофункциональное расширение (ранее известное как Модуль 1С-ЕГАИС) для взаимодействия типовых конфигураций 1С и ЕГАИС, предоставляющее максимум возможностей по работе с УТМ. Получение и отправка ТТН, отправка акта о постановке на баланс и акта о списании. Получение остатков. Загрузка и сопоставление номенклатуры и контрагентов. Оправка в ЕГАИС отчетов о производстве и импорте.

8970 руб.

15.12.2015    166426    702    362    

390

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 руб.

29.10.2014    211128    630    526    

446

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    7770    24    6    

42

54-ФЗ и Разрешительный режим. Обработки для подключения онлайн-касс к 1С 8 (поддержка Маркировки) + Эмулятор + ФФД 1.2

ККМ Кассовые операции Розничная торговля Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Бухгалтерия государственного учреждения 1С:Бухгалтерия автономного учреждения Россия Платные (руб)

Обработка осуществляет обслуживание ККТ АТОЛ, Штрих и Меркурий для конфигураций "УТ 10.3", "КА 1.1", "УПП 1.3", "Розница 1.0", "БП 2.0" и других отраслевых решений, построенных на основе указанных выше конфигурациях. Поддерживает возможность параллельно пробития чеков на одной ККМ несколькими пользователями. Поддерживает Веб-сервер Атол. Соответствует требованиям 54-ФЗ. Поддерживает ФФД 1.0, 1.05, 1.1 и 1.2. Разделяет чеки по нескольким СНО. Поддерживает механизмы подключения ККТ по TCP/IP, для работы через RDP или интернет. Поддержка маркировки и разрешительного режима.

5400 руб.

25.05.2015    317993    1851    3012    

998

Обмен с системой ЦРПТ (Универсальная конфигурация ХамелеонЦРПТ + маркировка табака, обуви, одежды, лекарств, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин)

Оптовая торговля Розничная торговля Обмен с ГосИС Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Россия Бухгалтерский учет Управленческий учет Платные (руб)

Данная публикация создана для помощи разработчикам, интеграторам и другим заинтересованным лицам по настройке системы маркировки обуви, одежды, лекарств, табака, фото, молока, духов(парфюма), питьевой воды, велосипедов и шин. Смело задавайте нам вопросы по работе с ЦРПТ, GS1, ЭДО, Национальным каталогом, мы накопили достаточно большую базу знаний по данным темам и готовы ответить на все Ваши вопросы.

104000 руб.

18.03.2019    110654    34    114    

178
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. xdim 6 29.10.12 18:44 Сейчас в теме
Конечно есть вариант решения через СрезПоследних, но что-то в голову сразу так все нарисовалось, да и отвечает всем требованиям. :idea:
+
Оставьте свое сообщение