Розница 2.0 колонка остатки в форму документа
Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
По теме из базы знаний
- Автоматическая установка себестоимости номенклатуры для конфигурации Розница 2.0 (2.1) +Бонус, исправляем ошибки при настройке расписания запуска для внешних обработок в Рознице 2.0
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- Алкогольные Декларации по Форме 7 и 8 по данным ЕГАИС из 1С Розница 3.0 и 2.3 ,УТ 11.5.х, КА
- Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы
- HOWTO: Остатки в форме регистрации продаж в УТ10
Найденные решения
По вашему вопросу, для начала надо открыть для редактирования текст формы документа о продажах. Делается это в конфигураторе Конфигурация/Поддержка/НастройкаПоддержки. Будьте внимательны, если вы получаете обновления конфигурации то откройте для редактирования только нужные части конфигурации с сохранением поддержки если это необходимо вам.
Далее нужно в самом документе в табличной части товары добавить реквизит и назвать остаток. Это добавляется в (объект/табличная чать/добавить нужный реквизит).
После этого этот реквизит нужно перетащить на форму в табличную часть и расположить в нужном месте.
Собственно по процедурам, нужно создать ОбщийМодуль с галочками сервер и вызов сервера чтоб там размещать свои функции и процедуры, в это модуле напишите функцию которая будет получать остатки из регистра ТоварыНаСкладах.
Например такой код
либо написать простой запрос, сравнить по производительности что будет быстрее получать остаток и оставить более быстрый вариант.
Далее просто в документе в процедуре ТоварыНоменклатураПриИзменении() вписываете вызов этой функции для получения остатков прописываете в самом конце процедуры чтоб потом долго не сикать
Соответственно нужно еще прописать в обработке подбора получение остатков по выбранным позициям, делается аналогично, чтоб долго не мучатся и производительность не важна тогда после подбора можно просто перебрать строки и в каждую получить остаток, но это требует много ресурсов и времени. Оптимальнее всего получать остатки в процессе подбора. Ну и еще если этот документ создается каким-то другим автоматом, то необходимо в том участке кода тоже добавить получение количества.
Далее нужно в самом документе в табличной части товары добавить реквизит и назвать остаток. Это добавляется в (объект/табличная чать/добавить нужный реквизит).
После этого этот реквизит нужно перетащить на форму в табличную часть и расположить в нужном месте.
Собственно по процедурам, нужно создать ОбщийМодуль с галочками сервер и вызов сервера чтоб там размещать свои функции и процедуры, в это модуле напишите функцию которая будет получать остатки из регистра ТоварыНаСкладах.
Например такой код
Функция ПолучитьОстаток(ВыбДата, Номенклатура, Характеристика, Склад) Экспорт
//получим остаток
Фильтр = Новый Структура;
Фильтр.Вставить("Номенклатура", Номенклатура);
Фильтр.Вставить("Характеристика", Характеристика);
//Фильтр.Вставить("Склад", Склад);
Возврат РегистрыНакопления.ТоварыНаСкладах.Остатки(ВыбДата, Фильтр, "Номенклатура, Характеристика", "Количество").Итог("Количество");
КонецФункции
Показатьлибо написать простой запрос, сравнить по производительности что будет быстрее получать остаток и оставить более быстрый вариант.
Далее просто в документе в процедуре ТоварыНоменклатураПриИзменении() вписываете вызов этой функции для получения остатков прописываете в самом конце процедуры чтоб потом долго не сикать
//получим остаток
ТекущаяСтрока.Остаток = ДополнительныеФункции.ПолучитьОстаток(Объект.Дата, ТекущаяСтрока.Номенклатура, ТекущаяСтрока.Характеристика, Объект.Магазин);
Соответственно нужно еще прописать в обработке подбора получение остатков по выбранным позициям, делается аналогично, чтоб долго не мучатся и производительность не важна тогда после подбора можно просто перебрать строки и в каждую получить остаток, но это требует много ресурсов и времени. Оптимальнее всего получать остатки в процессе подбора. Ну и еще если этот документ создается каким-то другим автоматом, то необходимо в том участке кода тоже добавить получение количества.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Очень рекомендовал бы использовать для этого отчет, а не табличную часть документа. Будет очень сильно лагать у всех, т.к. это документы ходовые.
Либо заполнять колонку не при открытии, а по дополнительной кнопке.
По поводу подробного алгоритма. Если сосем туго с навыками, лучше отбашлять профессионалам, меньшей кровью отделаетесь.
Либо заполнять колонку не при открытии, а по дополнительной кнопке.
По поводу подробного алгоритма. Если сосем туго с навыками, лучше отбашлять профессионалам, меньшей кровью отделаетесь.
По вашему вопросу, для начала надо открыть для редактирования текст формы документа о продажах. Делается это в конфигураторе Конфигурация/Поддержка/НастройкаПоддержки. Будьте внимательны, если вы получаете обновления конфигурации то откройте для редактирования только нужные части конфигурации с сохранением поддержки если это необходимо вам.
Далее нужно в самом документе в табличной части товары добавить реквизит и назвать остаток. Это добавляется в (объект/табличная чать/добавить нужный реквизит).
После этого этот реквизит нужно перетащить на форму в табличную часть и расположить в нужном месте.
Собственно по процедурам, нужно создать ОбщийМодуль с галочками сервер и вызов сервера чтоб там размещать свои функции и процедуры, в это модуле напишите функцию которая будет получать остатки из регистра ТоварыНаСкладах.
Например такой код
либо написать простой запрос, сравнить по производительности что будет быстрее получать остаток и оставить более быстрый вариант.
Далее просто в документе в процедуре ТоварыНоменклатураПриИзменении() вписываете вызов этой функции для получения остатков прописываете в самом конце процедуры чтоб потом долго не сикать
Соответственно нужно еще прописать в обработке подбора получение остатков по выбранным позициям, делается аналогично, чтоб долго не мучатся и производительность не важна тогда после подбора можно просто перебрать строки и в каждую получить остаток, но это требует много ресурсов и времени. Оптимальнее всего получать остатки в процессе подбора. Ну и еще если этот документ создается каким-то другим автоматом, то необходимо в том участке кода тоже добавить получение количества.
Далее нужно в самом документе в табличной части товары добавить реквизит и назвать остаток. Это добавляется в (объект/табличная чать/добавить нужный реквизит).
После этого этот реквизит нужно перетащить на форму в табличную часть и расположить в нужном месте.
Собственно по процедурам, нужно создать ОбщийМодуль с галочками сервер и вызов сервера чтоб там размещать свои функции и процедуры, в это модуле напишите функцию которая будет получать остатки из регистра ТоварыНаСкладах.
Например такой код
Функция ПолучитьОстаток(ВыбДата, Номенклатура, Характеристика, Склад) Экспорт
//получим остаток
Фильтр = Новый Структура;
Фильтр.Вставить("Номенклатура", Номенклатура);
Фильтр.Вставить("Характеристика", Характеристика);
//Фильтр.Вставить("Склад", Склад);
Возврат РегистрыНакопления.ТоварыНаСкладах.Остатки(ВыбДата, Фильтр, "Номенклатура, Характеристика", "Количество").Итог("Количество");
КонецФункции
Показатьлибо написать простой запрос, сравнить по производительности что будет быстрее получать остаток и оставить более быстрый вариант.
Далее просто в документе в процедуре ТоварыНоменклатураПриИзменении() вписываете вызов этой функции для получения остатков прописываете в самом конце процедуры чтоб потом долго не сикать
//получим остаток
ТекущаяСтрока.Остаток = ДополнительныеФункции.ПолучитьОстаток(Объект.Дата, ТекущаяСтрока.Номенклатура, ТекущаяСтрока.Характеристика, Объект.Магазин);
Соответственно нужно еще прописать в обработке подбора получение остатков по выбранным позициям, делается аналогично, чтоб долго не мучатся и производительность не важна тогда после подбора можно просто перебрать строки и в каждую получить остаток, но это требует много ресурсов и времени. Оптимальнее всего получать остатки в процессе подбора. Ну и еще если этот документ создается каким-то другим автоматом, то необходимо в том участке кода тоже добавить получение количества.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот