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

29.10.12

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
конфа с изменениями
.cf 24,06Mb
9
9 Скачать (1 SM) Купить за 1 850 руб.
архив с файлами конфигурации(только модуль чека и регистр)
.rar 26,31Kb
2
2 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

 

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

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

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

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

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

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

КОД:

Процедура ПериодНажатие()
    НастройкаПериода = новый НастройкаПериода;
    НастройкаПериода.УстановитьПериод(НачалоАкции, ?(КонецАкции = '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С 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    799850    4931    9561    

2864

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

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

8970 руб.

15.12.2015    171078    976    364    

401

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

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом. ВНИМАНИЕ! 09.01.25 г. планируется повышение цен на 20%!

28500 руб.

21.04.2017    96952    134    42    

215

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

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

5000 руб.

27.08.2018    123059    1043    586    

875

ККМ Кассовые операции Розничная торговля Системный администратор Программист Платформа 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 или интернет. Поддержка маркировки и разрешительного режима.

5880 руб.

25.05.2015    336496    1967    3064    

1033

SALE! 20%

Загрузка и выгрузка в Excel Оптовая торговля Печатные формы Бухгалтер Пользователь Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С одним нажатием. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

6000 5100 руб.

09.11.2016    235474    1066    898    

1006

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

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

22200 руб.

06.10.2023    15987    39    9    

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