HOWTO: Остатки в форме регистрации продаж в УТ10

29.11.16

Разработка - Механизмы типовых конфигураций

Как заставить УТ10 показывать остатки в форме регистрации продаж (Документ ЧекККМ)

Почему то такая потребность довольно часто возникала у всех, кто использует интерфейс кассира в УТ10. В Рознице 2.0, например, такая возможность уже есть.

Для того, чтобы показывались остатки, достаточно добавить текстовое поле Остаток и назначить следующую процедуру для обработчика ПриПолученииДанных табличного поля Товары в ФормеРегистрацииПродаж ЧекаККМ

Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)
        
    Если ОформленияСтрок.Количество() = 0 Тогда
        Возврат;
    КонецЕсли;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    ТаблицаНоменклатуры.Номенклатура,
    |    ТаблицаНоменклатуры.ХарактеристикаНоменклатуры,
    |    ТаблицаНоменклатуры.Склад
    |ПОМЕСТИТЬ ТаблицаВЗапрос
    |ИЗ
    |    &ТаблицаНоменклатуры КАК ТаблицаНоменклатуры
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ТоварыНаСкладахОстатки.Склад,
    |    ТоварыНаСкладахОстатки.Номенклатура,
    |    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры,
    |    ТоварыНаСкладахОстатки.КоличествоОстаток КАК КоличествоОстаток
    |ИЗ
    |    РегистрНакопления.ТоварыВРознице.Остатки(
    |            ,
    |            (Номенклатура, ХарактеристикаНоменклатуры, Склад) В
    |                (ВЫБРАТЬ
    |                    ТаблицаВЗапрос.Номенклатура,
    |                    ТаблицаВЗапрос.ХарактеристикаНоменклатуры,
    |                    ТаблицаВЗапрос.Склад
    |                ИЗ
    |                    ТаблицаВЗапрос КАК ТаблицаВЗапрос)) КАК ТоварыНаСкладахОстатки
    |ГДЕ
    |    ТоварыНаСкладахОстатки.Номенклатура.Услуга = ЛОЖЬ";
    
    ТаблицаНоменклатуры = Товары.Выгрузить();
    ТаблицаНоменклатуры.Колонки.Добавить("Склад",Новый ОписаниеТипов("СправочникСсылка.Склады"));
    ТаблицаНоменклатуры.ЗаполнитьЗначения(Склад,"Склад");
    
    Запрос.УстановитьПараметр("ТаблицаНоменклатуры", ТаблицаНоменклатуры);
    
    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
        //Сообщить ("Нет смогли определить остатки");
        Возврат;
    КонецЕсли;
    
    ТаблицаОстатков = Результат.Выгрузить();
    ТаблицаОстатков.Индексы.Добавить("Номенклатура,ХарактеристикаНоменклатуры");
    
    СтруктураПоиска = Новый Структура;
    МассивСтрок = Новый Массив;

    Для каждого ОформлениеСтроки Из ОформленияСтрок Цикл
        
        СтруктураПоиска.Вставить("Номенклатура"  , ОформлениеСтроки.ДанныеСтроки.Номенклатура);
        СтруктураПоиска.Вставить("ХарактеристикаНоменклатуры", ОформлениеСтроки.ДанныеСтроки.ХарактеристикаНоменклатуры);
        СтруктураПоиска.Вставить("Склад"         , Склад);
        
        МассивСтрок = ТаблицаОстатков.НайтиСтроки(СтруктураПоиска);
        Остаток=0;
        Если МассивСтрок.Количество() > 0  Тогда
              Остаток = МассивСтрок[0].КоличествоОстаток;
        КонецЕсли;
        ОформлениеСтроки.Ячейки.Остаток.УстановитьТекст(Остаток);

    КонецЦикла;

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

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

Остатки форма регистрации продаж в УТ10

См. также

Ценовая власть. Выносим из цикла схему СКД

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

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

1 стартмани

11.04.2024    473    tango    0    

3

Формула в реквизите. Приквелл к сериалу "Ценовая власть"

Механизмы типовых конфигураций Платформа 1С v8.3 1С:Управление торговлей 11 Россия Абонемент ($m)

Какому-либо элементу списка сопоставляется числовое значение, зависящее от других значений, причем эта зависимость изменяется от элемента к элементу. Так, в справочнике "Валюты" курс какой-либо валюты может быть задан формулой (или даже запросом) от значения другой валюты. А в справочнике "Виды цен" формула определяет расчет цены для товарной позиции, т.е. элементов справочника "Номенклатура", у которых в карточке указан этот вид цены. А в 1С:ERP, например, этот механизм используется в ресурсной спецификации.

10 стартмани

11.04.2024    359    tango    5    

3

Ценовая власть. Второй сезон

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

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

08.04.2024    550    tango    0    

2

Ценовая власть (УТ 11.5) - 2

Механизмы типовых конфигураций Платформа 1С v8.3 1С:Управление торговлей 11 Бесплатно (free)

В прошлый раз специальной обработкой мы выбрали объекты УТ 1.5, группируя по подсистемам. Оказалось, что состав подсистем не вполне корректно отображает функциональную структуру, но зато мы нашли процедуру, которая, вроде бы, должна содержать в себе всё, что нас интересует. Обновление цен должно ведь следовать выбранной стратегии ценообразования, верно? Иначе что она обновляет...

06.04.2024    438    tango    1    

1

Ценовая власть или Управление ценообразованием (УТ 11.5)

Ценообразование, анализ цен Механизмы типовых конфигураций Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Абонемент ($m)

Ценовая власть - это способность (возможность) компании изменять в некоторых пределах отпускную цену своего товара (услуг, продукции). Чем в более широких пределах вы можете играть в цену продажи, тем больше этой власти у вас. Если вы не можете управлять отпускной ценой, то это или не ваш бизнес, или не бизнес вовсе. Здесь в рубрике "База знаний аналитика и руководителя проекта" слово проект не ограничено "проектом в 1С". Посмотрим, что для этого есть в УТ 11.5.

1 стартмани

05.04.2024    520    tango    12    

2

Расширяем возможности дополнительных обработок и настраиваем их отладку

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Уже не одна веб-страница исписана знаниями о дополнительных обработках, как создать, как подключить. Есть масса вариантов, как их можно отладить. Я разобрался в кишках работы библиотеки и покажу, как можно расширить возможности дополнительных отчетов, а также покажу удобный способ отладки.

07.02.2024    2562    YA_418728146    11    

42

Регистры накопления в 1С:КА2 и 1С:ERP для расчета НДФЛ, страховых взносов и взаиморасчетов с сотрудниками на январь 2024 года. Краткое описание

Зарплата Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет НДФЛ Абонемент ($m)

Для расчета зарплаты и соответствующих налогов в конфигурациях 1С:КА2 и 1С:ERP используется 22 регистра накопления, 7 регистров сведений, 1 регистр расчета и бухгалтерские проводки. В таблице приведены названия этих регистров, указаны основные регистраторы и виды движений приход/расход. В описании приводится краткое функциональное назначение регистров в основных зарплатных процессах. Описание регистров родилось из черновиков при написании различных отчетов и обработок при эксплуатации 1С-овских конфигураций и исправлении ошибок по НДФЛ, взаиморасчетов с сотрудниками и прочих. Информация не претендует на полноценное описание работы регистров, скорее это дискуссионный материал. Но, возможно, кому-то пригодится и сократит время при подготовке отчетности за непростой (в плане учета зарплаты) 2023 год. А возможно, кто-то поделится своим опытом.

1 стартмани

10.01.2024    1117    7    2ncom    3    

8

Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 1С:Бухгалтерия 3.0 Бесплатно (free)

Используются для создания новых объектов в конфигурации, чтобы не забыть, что нужно сделать. Сделано на примере 1С:Бухгалтерия предприятия, в других конфигурациях могут быть другие, а могут быть и похожие объекты.

28.12.2023    4942    mrXoxot    11    

100
Комментарии
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Automatik 919 30.11.16 12:25 Сейчас в теме
Аватарку смени. Куда смотрит администрация?
2. Tarlich 116 30.11.16 15:58 Сейчас в теме
Данный способ был описан Радченко в 2009 г -))
3. kauksi 216 30.11.16 16:48 Сейчас в теме
(2) И что же 1С его не реализовала в УТ10 и УПП?, даже в рознице 1.0 по моему не было, добавили только в 2.0
4. gzharkoj 504 02.12.16 09:51 Сейчас в теме
Видно, что вы хотели сделать все красиво, поэтому не сочтите за придирки:
1. Условие на услуги лишнее, ну а если все же добавляете, то добавляйте его в отборы виртуальной таблицы, чтобы уж все правильно было.
2. В структуре поиска склад не нужен, он же у вас и так один, соответственно и в выборке во втором запросе не нужен.

И момент для раздумий, если будете добавлять позиции, то каждый раз запрос по остаткам будет делаться по всем позициям видимым на экране, даже по тем, по которым уже остаток вычислен, такие позиции можно исключить. Если конечно, кассирам не надо в реальном времени видеть изменения остатка в своем чеке.
5. as 08.12.16 10:25 Сейчас в теме
1. В отбор виртуальной таблицы нельзя добавлять, т.к. это замедлит исполнение запроса(построение виртуальной таблицы)
6. Urgash 14.08.19 05:06 Сейчас в теме
В процедуру ТоварыПриВыводеСтроки достаточно добавить строчку:
ОформлениеСтроки.Ячейки.Остаток.Значение=ДополнительныеРасчеты.ПолучитьОстатки(ДанныеСтроки.Номенклатура, ТекущаяДата(), Склад);
Само собой после добавления колонки "Остаток" в табличную часть. Работает в разы быстрее чем Ваш метод.
7. kauksi 216 14.08.19 08:37 Сейчас в теме
(6)
ПриВыводеСтроки
Этот метод вызывается при каждом обновлении формы, при каждом скроллинге табличной части, и будет работать каждый раз для КАЖДОЙ строки (т.е. куча запросов). Что при достаточно большом обьеме базы и куче пользователей приводит к дополнительной ненужной нагрузке на базу. Так что по поводу быстродействия вопрос спорный.
8. Archivar 20.03.20 18:33 Сейчас в теме
9. petrushkomaks 26.02.24 06:40 Сейчас в теме
Здравствуйте. Огромное спасибо! Применил на УТ 10.3 для "ФормыДокумента", "ФормаРегистрацииПродаж" у нас не используется. Работает отлично, но с небольшой проблемой. Если добавить позицию с нулевым остатком не первой, она подхватывает остаток предыдущей стоки. Подскажите, как это можно исправить?
Прикрепленные файлы:
10. petrushkomaks 26.02.24 07:05 Сейчас в теме
(9)нашел, исправил. Моя ошибка с процедурой все ок. Спасибо
11. YA_1518087468 22.03.24 21:43 Сейчас в теме
Подскажите пожалуйста а как сделать чтоб в чеке ккм тоже остатки отображались?
Оставьте свое сообщение