Подбор подарков в табличную часть документа Чек ККМ для УТ 11.0.9.14

Публикация № 165737

Разработка - Обработки - Ценообразование, прайсы

Разбираясь с функционалом УТ 11 в части скидок и наценок с удивлением обнаружил, что при использовании скидок с типом Подарок, номенклатуру из сегмента подарков, необходимо добавлять в Чек ККМ вручную и никаких предупреждений и сообщений пользователю, об этом факте, не выводится.

 

Итак, релиз УТ 11.0.9.14, необходимо в документе Чек ККМ автоматически показать окно выбора номенклатуры для подарков, если «сработала» скидка такого типа. Для этого необходимо выполнить следующие действия:

1)      Создаем общий модуль my_СкидкиНаценки, в свойствах устанавливаем Клиент, Сервер. Текст модуля:

 

&НаКлиенте

Процедура my_ОткрытьПодборПодарков(СегментПодарков, ФормаВладелец) Экспорт

               

                //вызываем форму подбора номенклатуры с отбором по сегменту, в котором находятся подарки

                Для каждого Строка Из СегментПодарков Цикл

                               Форма = ПолучитьФорму("Справочник.Номенклатура.Форма.ФормаВыбора", , ФормаВладелец);

                               Форма.СегментНоменклатуры = Строка.Значение;

                               ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Форма.Список, "СегментНоменклатуры", Строка.Значение, ЗначениеЗаполнено(Форма.СегментНоменклатуры));

                               Форма.Открыть();

                КонецЦикла;  

               

КонецПроцедуры

 

 

&НаСервере

Функция my_ОбработкаСкидокТипаПодарок(ТаблицаСкидок) Экспорт

               

              //формируем структуру, в которой запоминаем сегменты номенклатуры, из которых будут выбираться подарки 

               СписокСегментовПодарков = Новый Структура;

               

                Для каждого Строка Из ТаблицаСкидок Цикл

                               Если Строка.СкидкаНаценка.СпособПредоставления = Перечисления.СпособыПредоставленияСкидокНаценок.Подарок Тогда

                                               СписокСегментовПодарков.Вставить("Сегмент", Строка.СкидкаНаценка.СегментПодарков);

                               КонецЕсли;

                КонецЦикла;

               

                Возврат СписокСегментовПодарков;

КонецФункции

 

 

2)      В модуле формы ФормаДокументаМастер документа ЧекККМ добавляем следующий код:

//my begin

&НаКлиенте

Перем my_флПодаркиДобавлены;  //Истина - подраки уже добавлены в табличную часть документа ЧекККМ

//my end

 

&НаКлиенте

Процедура ПриОткрытии(Отказ)

 

….

                //my begin

                //необходимо добавить подарки, в табличную часть документа, если сработает скидка с типом "Подарок"

                my_флПодаркиДобавлены = Ложь;

                //my end

               

КонецПроцедуры

 

&НаКлиенте

Процедура Расчет(Команда)

 

….

 

                       Если (ИспользоватьАвтоматическиеСкидкиВПродажах

                               И ПараметрыПримененияСкидок.НазначеныСкидки)

                               ИЛИ (Не КонтрольНаСкладеОтключен) Тогда

                              

                               Результат = ВыполнитьЧастьРасчетаНаСервере(ВозвращенноеЗначениеУправляемыеСкидки);

                               Если Не Результат.РасчетВыполненУспешно Тогда

                                               Возврат;

                               КонецЕсли;

                              

                               //my begin

                              //если подарки еще не добавлены в ТЧ и заполнена структура со списком сегментов, из которых необходимо выбирать подарки, то

                             //открываем форму подбора номенклатуры с отбором по сегменту, из которого будут выбираться подарки 

                               Если (НЕ my_флПодаркиДобавлены) И (Результат.СтруктураСообщений.СписокСегментовПодарков.Количество() > 0) Тогда

                                              my_СкидкиНаценки.my_ОткрытьПодборПодарков(Результат.СтруктураСообщений.СписокСегментовПодарков, ЭтаФорма);

                               КонецЕсли;

                               //my end

                              

                               Если Результат.СтруктураСообщений <> Неопределено И Результат.СтруктураСообщений.Сообщения.Количество() > 0 И Результат.СтруктураСообщений.АвтоматическиОткрывать Тогда

                                               ОткрытьФорму("ОбщаяФорма.СообщенияСкидокНаценок", Результат.СтруктураСообщений, ЭтаФорма, УникальныйИдентификатор);

                               КонецЕсли;

                              

                КонецЕсли;

 

…

 

КонецПроцедуры

 

&НаСервере

Функция РассчитатьСкидкиНаценкиНаСервере(СтруктураПараметры)

 

….

 

              //my begin

              //после штатного расчета скидок, проверяем применяется ли к данному документу скидка с типом "Подарок", если применяется, то

             //формируем структуру, в которой запоминаем сегменту из которых будут выбираться подарки 

               СписокСегментовПодарков = my_СкидкиНаценки.my_ОбработкаСкидокТипаПодарок(ПримененныеСкидки.ТаблицаСкидкиНаценки);

               Если СписокСегментовПодарков.Количество() > 0 Тогда

                               СтруктураСообщений.Вставить("СписокСегментовПодарков", СписокСегментовПодарков);

               КонецЕсли;

               //my end

              

               Возврат СтруктураСообщений;

              

КонецФункции

 

//my begin

&НаКлиенте

Процедура ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора)

             

              //обрабатываем результаты подбора из формы подбора номенклатуры для текущего сегмента подарков 

               Если ИсточникВыбора.ИмяФормы = "Справочник.Номенклатура.Форма.ФормаВыбора" Тогда

                               my_ДобавитьТоварВТЧ(ВыбранноеЗначение);

                               ВернутьсяКПодборуТоваров(Команды.Найти("ВернутьсяКПодборуТоваров"));

                               ТоварыНоменклатураПриИзменении(Элементы.ТоварыНоменклатура);

                              

                               //подарки добавлены в ТЧ. Необходимо, чтобы при повторном нажатии на кнопку Расчет, опять не открывалась форма для подбор подарка

                               my_флПодаркиДобавлены = Истина; 

               КонецЕсли;

                              

КонецПроцедуры

 

&НаСервере

Процедура my_ДобавитьТоварВТЧ(Товар)

              //добавляем выбранный подарок в ТЧ документа

              ТекущаяСтрока = Объект.Товары.Добавить();

               ТекущаяСтрока.Номенклатура = Товар;

               ТекущаяСтрока.Количество = 1;

              

               Элементы.Товары.ТекущаяСтрока = ТекущаяСтрока.ПолучитьИдентификатор();

КонецПроцедуры  //my_ДобавитьТоварВТЧ

//my end

 

 

В итоге получаем в документе ЧекККМ,  если в документе применяется скидка с типом «Подарок», при нажатии кнопки Расчет, появляется окно выбора номенклатуры из сегмента подарков. После выбора подарка, указываем его количество и повторно нажимаем кнопку Расчет, чтобы сработал штатный алгоритм разброса стоимости подарка на остальные строки чека.

 

P.S. Платформу 8.2 только недавно начал осваивать, поэтому просьба сильно не пинать, если кому то код придется не по душе ))

 

 

 

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. vertkov2010 2 11.12.12 15:22 Сейчас в теме
Все супер но в конфе УТ 11.0.9.14 выдает ошибку мне подскажи в чем ошибка
//Если СписокСегментовПодарков.Количество() > 0 Тогда
//СтруктураСообщений.Вставить("СписокСегментовПодарков", СписокСегментовПодарков);
//КонецЕсли;
2. vertkov2010 2 11.12.12 15:48 Сейчас в теме
и можно ли организовать выбор подарка автоматически из сегмента, а не вручную из сегмента
4. VIA_1C 57 12.12.12 07:19 Сейчас в теме
(2)

можно, но пока некогда этим заниматься, да и не понятно по каким критериям автоматически выбирать подарок
3. VIA_1C 57 12.12.12 07:18 Сейчас в теме
Выложил cf измененой конфигурации, скачивай, разбирайся. Мой код помечен комментариями
//my begin
...
//my end

Ссылка на cf конфиги:
http://narod.ru/disk/64430719001.2c6525c7c0970ec4afc0c550df244cc9/%D0%A3%D0%A2_11.0.9.14_%D0%98%D0%B7%D0%BC%D0%9F%D0%BE%D0%B4%D0%B0%D1%80%D0%BA%D0­%B8%D0%92%D0%A7%D0%B5%D0%BA%D0%9A%D0%9A%D0%9C.cf.html
5. vertkov2010 2 12.12.12 08:54 Сейчас в теме
Привет. мне начальство сказало срочно
организовать выбор подарка автоматически из сегмента, а не вручную из сегмента , там в условие есть условие подарок 1 шт из сегмента Подарок допустим. Вот и необходимо при открытии подбора выбора подарка смотреть условие и выводит отбор именно по этому сегменту и автоматически выбирать подарок по алфавитному порядку
А с кодом немножко не судьба. вот твой пример достаточно понятен кстати.
Ответь пожалуйста. Отблагодарю
6. VIA_1C 57 12.12.12 09:27 Сейчас в теме
(5) при открытии подбора подарка устанавливается фильтр по сегменту, из которого выбираются подарки. Автоматический подбор подарков тебе придется самому допиливать, мне пока некогда этим заниматься
7. vertkov2010 2 12.12.12 10:50 Сейчас в теме
(6) VIA_1C, фильтр по сегменту подарка у тебя там нет . Я самому каким командами все это сделать не могу понять
8. VIA_1C 57 12.12.12 11:33 Сейчас в теме
(7) фильтр есть, вот этот кусок кода отвечает за его установку

Процедура my_ОткрытьПодборПодарков(СегментПодарков, ФормаВладелец) Экспорт



Для каждого Строка Из СегментПодарков Цикл

Форма = ПолучитьФорму("Справочник.Номенклатура.Форма.ФормаВыбора", , ФормаВладелец);

Форма.СегментНоменклатуры = Строка.Значение;

ОбщегоНазначенияКлиентСервер.УстановитьПараметрДинамическогоСписка(Форма.Список, "СегментНоменклатуры", Строка.Значение, ЗначениеЗаполнено(Форма.СегментНоменклатуры));

Форма.Открыть();

КонецЦикла;



КонецПроцедуры


скачай cf на который я дал ссылку и накати на свою конфигу...у меня все работает
9. vertkov2010 2 12.12.12 15:09 Сейчас в теме
(8) VIA_1C, да скачал посмотрю. спасибо
10. webester 31 14.12.12 07:38 Сейчас в теме
А задокументировать было слабо? Какая процедура, что делает и за что отвечает. Нормально описать что добавил и зачем. Да хотя бы в коде хоть какие то коменты, тяп ляп, нате кушайте не обляпайтесь, ероры лезут, например такие да не моя проблема, и человек пусть голову ломает, в чем тут проблема и что автор имел ввиду.
11. VIA_1C 57 14.12.12 07:40 Сейчас в теме
(10) а скачать cf из (3) слабо и самому разобраться? )
12. webester 31 14.12.12 07:51 Сейчас в теме
Скачал уже, разбираюсь, если пишешь шарады я как бы думал, что это на другом ресурсе. Здесь по идее должны быть темы типа:
"хочу сделать вот это, для этого добавил модуль туда то, и здесь получил вот это."
Тогда ошибка находится за две минуты и я бы показал где поправить, вместо того, что бы плеваться.
а у тебя:
написал вот это, догадайтесь, где я ошибся и почему?
13. webester 31 14.12.12 07:56 Сейчас в теме
Я это к тому, что статью хорошо бы поправить если ты конечно написал ее для людей.
14. sadam_max 8 21.03.13 14:40 Сейчас в теме
cf-ник пропал надо еще разок выложить)) выложите пожалуйста
Оставьте свое сообщение

См. также

Программная работа с настройками СКД

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    5463    ids79    25       

Сдача регламентированной отчетности из программ 1С Промо

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

от 1500 руб.

[СКД] Программное создание схемы компоновки данных

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    7394    John_d    21       

INFOSTART MEETUP Kazan. 13 марта 2020 г. Промо

Инфостарт продолжает путешествие по России. Следующая остановка - Казань. Тема мероприятия - управление и технологии автоматизации учета на платформе "1С: Предприятие". Ждем всех: докладчиков и участников! Стоимость участия - 5 500 рублей. Цена действительна до 30.01.2020

5 500

Агрегатные функции СКД, о которых мало кто знает

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    24081    ids79    45       

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Три костыля. Сказ про фокусы в коде

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    15900    YPermitin    76       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Отслеживание выполнения фонового задания

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции Разработка

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    18268    ids79    16       

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    33265    ids79    36       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Фоновое выполнение кода в 1С - это просто

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования

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

02.08.2019    18353    avalakh    21       

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Статья Программист Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    27177    ids79    9       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Инструментарий разработчика Практика программирования

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    19630    ids79    27       

Регистры сведений. За кулисами

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

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

09.07.2019    14839    YPermitin    12       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

"Меньше копипаста!", или как Вася универсальную процедуру писал

Статья Программист Стажер Нет файла v8 v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Разработка

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    12097    SeiOkami    49       

Создание отчетов с помощью СКД - основные понятия и элементы

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Математика и алгоритмы

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    31761    ids79    17       

​​​​​​​CorelDRAW Graphics Suite 2019 Промо

CorelDRAW – пакет профессиональных инструментов для редактирования фотографий, разработки дизайна, создания макетов страниц и векторных иллюстраций

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Статья Программист Нет файла v8 v8::Запросы Бесплатно (free) Практика программирования Разработка

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    16927    dmurk    144       

Регистры накопления. Структура хранения в базе данных

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    27269    YPermitin    27       

Базовый курс по управлению ИТ-проектами. Курс проходит с 26 февраля по 22 апреля 2020 года. Промо

Отличительная черта курса - органичное сочетание трех вещей: 1.Теория проектного управления (PMI®+Agile Alliance+Российские ГОСТ+Методологии от 1С); 2. Опыт внедрения продуктов 1С (опыт франчайзи и успешных компаний + тренды Infostart Event и Agile Days); 3. Разбор реальных проблем и рекомендации экспертов по проектам слушателей. Мы будем фиксироваться на тех инструментах, которые реально оказываются полезными в практике руководителей проектов внедрения. Ведущая курса - Мария Темчина.

от 11000 рублей

Выполнение внешней обработки в фоновом задании

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    17272    Eret1k    23       

Выгрузка документа по условию

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Разработка

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    9299    m-rv    2       

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Как прикрутить ГУИД к регистру сведений

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8 Разработка

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

16.04.2019    12434    m-rv    16       

О расширениях замолвите слово...

Статья Программист Стажер Нет файла v8 Бесплатно (free) Практика программирования Разработка

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    23411    ellavs    125       

Голосование за доклады на INFOSTART MEETUP Kazan - до 25 февраля. Промо

Выбирайте и голосуйте за самые интересные доклады! Лучшие из лучших попадут в окончательную программу казанского митапа. Оставить свой голос можно до 25 февраля 2020 года.

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

Статья Программист Стажер Нет файла v8 Windows Бесплатно (free) Практика программирования Разработка

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    18570    ellavs    83       

Трюки с внешними источниками данных

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Разработка

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    20425    YPermitin    53       

Онлайн-курс "Подготовка к экзамену 1С:Эксперт и 1С:Профессионал по технологическим вопросам" с 7 по 24 апреля 2020 г. Промо

На курсе вы получите практические навыки решения задач производительности 1С, в том числе характерных для высоконагруженных информационных систем (более 1000 пользователей). Подготовка к экзамену – только одна из составляющих курса. 70% слушателей приходят за знаниями, которые позволят расти и зарабатывать, делать сложные задачи на крупных проектах.

16450 рублей

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

Статья Программист Нет файла v8 v8::Права Бесплатно (free) Практика программирования БСП (Библиотека стандартных подсистем) Роли и права

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    24565    ids79    9