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

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].праздник;
    КонецЕсли;
КонецЕсли;

 

См. также

SALE! 20%

Автоматический заказ поставщику в 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 22800 руб.

21.04.2017    90173    105    39    

190

ККТ-ОНЛАЙН 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

4800 руб.

27.02.2017    763003    4668    9495    

2781

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

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

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

8970 руб.

15.12.2015    165958    679    362    

385

SALE! 25%

Infostart PrintWizard

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

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

18000 15300 руб.

06.10.2023    7264    21    6    

39

SALE! 10%

Загрузка номенклатуры из 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 9504 руб.

29.10.2014    210154    620    524    

439

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

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

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

104000 руб.

18.03.2019    110322    34    114    

178

Печать кассовых чеков на одну ККМ с нескольких рабочих мест для 1С:УТ11.х, КА2.х, Розница 2.х, УНФ, ERP 2.х, БП 3, БГУ2

ККМ Кассовые операции Розничная торговля Обмен с ГосИС Бухгалтерский учет Оперативный учет Управляемые формы 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Расширение конфигурации для УТ 11.4, 11.5, КА 2.4, 2.5, Розница 3.0, 2.3 и 2.2, УНФ 1.6, УНФ 3x, ERP 2.4, 2.5, БП 3, БГУ2 (Управляемые формы) позволяет выполнять печать кассовых чеков на одну ККМ 54-ФЗ с нескольких рабочих мест. НИКАКИХ НАСТРОЕК В РАЗРАБОТКЕ - ПОДКЛЮЧИЛ И ПЕЧАТАЙ. Если у вас несколько отделов и одна ККМ - печатайте на одной ККМ! Если у вас две ККМ и одна поломалась - печатайте на одной ККМ, пока ремонтируете другую!

4000 руб.

27.08.2018    115980    981    564    

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