Добрый день!
Перешли на версию УТ 11.1.4.14 с версии 11.1.2
Столкнулись с такой проблемой:
1) При подборе одной и той же номенклатуре в подборе раньше одинаковые позиции суммировались - сейчас нет. Как это настроить?
2) при добавлении уже рассчитанную накладную новых позиций (при этом позиции могли уже быть (просто добавляется количество)) - они переносятся в документ новыми строчками, а не суммирует количество. Как это исправить?
Перешли на версию УТ 11.1.4.14 с версии 11.1.2
Столкнулись с такой проблемой:
1) При подборе одной и той же номенклатуре в подборе раньше одинаковые позиции суммировались - сейчас нет. Как это настроить?
2) при добавлении уже рассчитанную накладную новых позиций (при этом позиции могли уже быть (просто добавляется количество)) - они переносятся в документ новыми строчками, а не суммирует количество. Как это исправить?
По теме из базы знаний
- Движение номенклатуры в подборе товаров для УТ 11 (расширение)
- Отображение доступных остатков товаров на всех или выбранных складах в подборе номенклатуры. УТ 11 (Управление торговлей 11)
- РИБ с фильтрами - Информативные остатки в узлах. УТ 11.4
- Все склады в подборе для УТ 11.5
- Помощник подбора номенклатуры (УТ 11.5)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Добрый день!!! Я думаю следует посмотреть в сторону
- расположена в модуле формы документа.
в ней есть цикл где обрабатывается результат подбора
вот в ней необходимо сделать условие что то типа
Ну еще добавить в структуру "СтруктураДействий" дополнительные действия для обработки строки что то типо пересчета суммы ну и прочей фигни. В дальнейшем обработка "СтруктурыДействий" пройдет в
Ну а дальше я думаю сами определитесь что куда подсунуть!!!!
Если честно то у меня даже в релизе 11.1.1.13 не суммирует =))) я торговлю 11 не знаю может есть какой-то флаг в настройках учета для контроля дублей в табличных частях документа.
Процедура ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение)
в ней есть цикл где обрабатывается результат подбора
Для каждого СтрокаТовара Из ТаблицаТоваров Цикл
ТекущаяСтрока = Объект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(ТекущаяСтрока, СтрокаТовара, "НоменклатураПоставщика, Номенклатура, Характеристика, Упаковка, Склад, УсловиеЦеныПоставщика, Цена, КоличествоУпаковок, ПроцентРучнойСкидки");
Если Объект.ПоступлениеПоЗаказам Тогда
ТекущаяСтрока.РасхождениеЗаказ = 1;
КонецЕсли;
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", Объект.НалогообложениеНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДСВозвратнойТары", Объект.ВернутьМногооборотнуюТару);
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий,Объект);
КэшированныеЗначения = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
КонецЦикла;
Показатьвот в ней необходимо сделать условие что то типа
Отбор = Новый Структура("Номенклатура", СтрокаТовара.Номенклатура);
НайденнаяПозиция = Объект.Товары.НайтиСтроки(Отбор);
Если НайденнаяПозиция.Количество() > 0 Тогда
ТекущаяСтрока = НайденнаяПозиция[0];
Иначе
ТекущаяСтрока = Объект.Товары.Добавить();
КонецЕсли;
Ну еще добавить в структуру "СтруктураДействий" дополнительные действия для обработки строки что то типо пересчета суммы ну и прочей фигни. В дальнейшем обработка "СтруктурыДействий" пройдет в
ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
Ну а дальше я думаю сами определитесь что куда подсунуть!!!!
Если честно то у меня даже в релизе 11.1.1.13 не суммирует =))) я торговлю 11 не знаю может есть какой-то флаг в настройках учета для контроля дублей в табличных частях документа.
Процедура ДобавитьВКорзину(ПараметрыТовара)
Процедура ДобавитьВКорзину(ПараметрыТовара)
......
ТекстОповещения = ДобавитьВКорзинуНаКлиенте(ПараметрыТовара, НовыеСтроки);
......
А вот собственно где происходит поиск товара в корзине и если его нет то добавляет новый в противном случае увеличивает кол-во:
Функция ДобавитьВКорзинуНаКлиенте(ПараметрыТовара, НовыеСтроки)
Отбор = Новый Структура("Номенклатура, Характеристика, ХарактеристикиИспользуются, Упаковка, Цена, ВидЦены, Склад, ПроцентРучнойСкидки, СрокПоставки");
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуРучнойСкидки");
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
Для Каждого НоваяСтрока Из НовыеСтроки Цикл
ЗаполнитьЗначенияСвойств(Отбор, ПараметрыТовара, "Номенклатура, Характеристика, ХарактеристикиИспользуются, СрокПоставки");
ЗаполнитьЗначенияСвойств(Отбор, НоваяСтрока, "Упаковка, Цена, ВидЦены, Склад, ПроцентРучнойСкидки");
Если ИспользоватьДатыОтгрузки Тогда
Отбор.Вставить("ДатаОтгрузки", НоваяСтрока.ДатаОтгрузки);
КонецЕсли;
РезультатПоиска = Объект.Корзина.НайтиСтроки(Отбор);
Если РезультатПоиска.Количество() = 0 Тогда
ТекущаяСтрока = Объект.Корзина.Добавить();
ЗаполнитьЗначенияСвойств(ТекущаяСтрока, Отбор);
СтруктураДействий.Вставить("ЗаполнитьПризнакНаличияНоменклатурыПродаваемойСовместно", ПредопределенноеЗначение("Перечисление.ВариантыАнализаНоменклатурыПродаваемойСовместно.ОптоваяТорговля"));
Иначе
ТекущаяСтрока = РезультатПоиска[0];
КонецЕсли;
ТекущаяСтрока.КоличествоУпаковок = ТекущаяСтрока.КоличествоУпаковок + НоваяСтрока.КоличествоУпаковок;
Показать
(8) alexruzh67,
Для объединения позиций в реализации
Для объединения в подборе. НО тут аккуратно. Цены у нас одни, упаковок нет.
Для объединения позиций в реализации
Процедура ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение)
ТаблицаТоваров = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресТоваровВХранилище);
КэшированныеЗначения = ОбработкаТабличнойЧастиКлиентСервер.ПолучитьСтруктуруКэшируемыеЗначения();
Для каждого СтрокаТовара Из ТаблицаТоваров Цикл
Отбор = Новый Структура("Номенклатура", СтрокаТовара.Номенклатура);
НайденнаяПозиция = Объект.Товары.НайтиСтроки(Отбор);
Если НайденнаяПозиция.Количество() > 0 Тогда
ТекущаяСтрока = НайденнаяПозиция[0];
ТекущаяСтрока.Количество = ТекущаяСтрока.Количество + СтрокаТовара.Количество;
ТекущаяСтрока.КоличествоУпаковок = ТекущаяСтрока.КоличествоУпаковок + СтрокаТовара.КоличествоУпаковок;
Иначе
ТекущаяСтрока = Объект.Товары.Добавить();
ЗаполнитьЗначенияСвойств(ТекущаяСтрока, СтрокаТовара, "Номенклатура, Характеристика, Упаковка, Склад, ВидЦены, Цена, КоличествоУпаковок, СрокПоставки, ПроцентРучнойСкидки");
КонецЕсли;
ОбновитьОтклоненияОтЗаказаВСтроке(ТекущаяСтрока, Объект.РеализацияПоЗаказам, Объект.ТребуетсяЗалогЗаТару);
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ЗаполнитьПризнакТипНоменклатуры", Новый Структура("Номенклатура", "ТипНоменклатуры"));
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДС", Объект.НалогообложениеНДС);
СтруктураДействий.Вставить("ЗаполнитьСтавкуНДСВозвратнойТары", Объект.ВернутьМногооборотнуюТару);
СтруктураДействий.Вставить("ЗаполнитьПризнакБезВозвратнойТары", Объект.ВернутьМногооборотнуюТару);
ДобавитьВСтруктуруДействияПриИзмененииКоличестваУпаковок(СтруктураДействий, Объект);
ОбработкаТабличнойЧастиСервер.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
КонецЦикла;
ЗаполнитьСлужебныеРеквизитыПоНоменклатуре();
ОбновитьЗависимыеРеквизитыФормыСервер();
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(Объект, ПараметрыУказанияСерий);
МногооборотнаяТараСервер.ОбновитьСостояниеЗаполненияМногооборотнойТары(Объект.СостояниеЗаполненияМногооборотнойТары);
РассчитатьИтоговыеПоказателиРеализации(ЭтаФорма);
РассчитатьСуммуПредоплаты(ЭтаФорма);
МногооборотнаяТараСервер.ОбновитьСостояниеЗаполненияМногооборотнойТары(Объект.СостояниеЗаполненияМногооборотнойТары);
КонецПроцедуры
ПоказатьДля объединения в подборе. НО тут аккуратно. Цены у нас одни, упаковок нет.
//Отбор = Новый Структура("Номенклатура, Характеристика, ХарактеристикиИспользуются, Упаковка, Цена, ВидЦены, Склад, ПроцентРучнойСкидки, СрокПоставки");
Отбор = Новый Структура("Номенклатура,Цена, ВидЦены, Склад, ПроцентРучнойСкидки"); //Характеристика, ХарактеристикиИспользуются, Упаковка, Цена, ВидЦены, Склад, ПроцентРучнойСкидки, СрокПоставки");
СтруктураДействий = Новый Структура;
СтруктураДействий.Вставить("ПересчитатьКоличествоЕдиниц");
СтруктураДействий.Вставить("ПересчитатьСумму");
СтруктураДействий.Вставить("ПересчитатьСуммуРучнойСкидки");
СтруктураДействий.Вставить("ПересчитатьСуммуСУчетомРучнойСкидки", Новый Структура("Очищать", Ложь));
Для Каждого НоваяСтрока Из НовыеСтроки Цикл
ЗаполнитьЗначенияСвойств(Отбор, ПараметрыТовара, "Номенклатура,"); //Характеристика, ХарактеристикиИспользуются, СрокПоставки");
//ЗаполнитьЗначенияСвойств(Отбор, НоваяСтрока, "Упаковка, Цена, ВидЦены, Склад, ПроцентРучнойСкидки");
ЗаполнитьЗначенияСвойств(Отбор, НоваяСтрока, "Цена, ВидЦены, Склад, ПроцентРучнойСкидки");
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот