![]() |
![]() |
![]() |
|
ТОЗагрузкаККМOffline на основании поступления или перемещения УТ 10.3 | ☑ | ||
---|---|---|---|---|
0
ElidanPro
23.06.15
✎
02:53
|
Добрый день товарищи задался целью допилить обработку загрузки товаров в ккм offline на основании поступления\перемещения.
Что то не идет немного. Релиз: 10.3.32.2 Процедура проверитьМассив(Массив) Запрос = Новый запрос("ВЫБРАТЬ | ТоварыНаККМ.Номенклатура |ИЗ | РегистрСведений.ТоварыНаККМ КАК ТоварыНаККМ |ГДЕ | ТоварыНаККМ.Номенклатура В(&МассивНоменклатуры)"); Запрос.УстановитьПараметр("массивНоменклатуры",Массив); Результат = Запрос.Выполнить().Выгрузить(); массив = новый массив; Если Результат.Количество() <> Массив.Количество() тогда Для каждого Элемент из Массив цикл Если Результат.Найти(Элемент.Ссылка,"Номенклатура") = Неопределено тогда НаборЗаписей = РегистрыСведений.ТоварыНаККМ.СоздатьНаборЗаписей(); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.КассаККМ = ККМOffline; НоваяЗапись.Номенклатура = Элемент.Ссылка; Выборка = Справочники.ЕдиницыИзмерения.Выбрать(,Элемент.Ссылка,); Выборка.Следующий(); ЕдИзм = Выборка.Ссылка; НоваяЗапись.ЕдиницаИзмерения = ЕдИзм; НоваяЗапись.Код = РаботаСТорговымОборудованием.ПолучитьНовыйPLU(ККМOffline, Элемент.Ссылка); КонецЕсли; КонецЦикла; НаборЗаписей.Записать(); КонецЕсли; КонецПроцедуры {Форма.Форма.Форма(475)}: Значение не является значением объектного типа (Записать) НаборЗаписей.Записать(); Вываливается с ошибкой. Процедура ДействияФормыЗаполнить(Кнопка) Если НЕ ЗначениеЗаполнено(ТекущийСклад) Тогда Предупреждение("Не выбран склад."); Возврат; КонецЕсли; Если НЕ ЗначениеЗаполнено(ККМOffline) Тогда Предупреждение("Не выбрана ККМ."); Возврат; КонецЕсли; Если НЕ ЗначениеЗаполнено(ТипЦен) Тогда Предупреждение("Не выбран тип цен."); Возврат; КонецЕсли; Массив = Поступление.Товары.ВыгрузитьКолонку("Номенклатура"); ПроверитьМассив(Массив); Запрос = Новый Запрос( "ВЫБРАТЬ | ПзТовары.КодТовара КАК ПЛУ, | ПзТовары.Номенклатура КАК Номенклатура, | ПзТовары.ВесовойТовар КАК ВесовойТовар, | ПзТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | ПзТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | ПзТовары.СерияНоменклатуры КАК Серия, | 111111111111111.11 КАК Цена, | ЕСТЬNULL(ПзКодыТоваров.Штрихкод, """") КАК КодТовара, | ЕСТЬNULL(РегОстатки.КоличествоОстаток, 0) КАК Остаток |ИЗ | (ВЫБРАТЬ | РегТовары.Код КАК КодТовара, | РегТовары.Номенклатура КАК Номенклатура, | РегТовары.Номенклатура.Весовой КАК ВесовойТовар, | РегТовары.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | РегТовары.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | РегТовары.СерияНоменклатуры КАК СерияНоменклатуры | ИЗ | РегистрСведений.ТоварыНаККМ КАК РегТовары | ГДЕ | РегТовары.КассаККМ = &КассаККМ | " + ?(ЗначениеЗаполнено(поступление),"И РегТовары.Номенклатура В (&МассивНоменклатуры)","") + " | " + ?(мПоддерживаетсяВесовойТовар, "", "И НЕ РегТовары.Номенклатура.Весовой") + " | ) КАК ПзТовары | " + ?(мНеобходимШтрихкод, "ВНУТРЕННЕЕ", "ЛЕВОЕ") + " СОЕДИНЕНИЕ | (ВЫБРАТЬ | РегШК.Штрихкод КАК Штрихкод, | РегШК.ЕдиницаИзмерения КАК ЕдиницаИзмерения, | РегШК.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | РегШК.СерияНоменклатуры КАК СерияНоменклатуры | ИЗ | РегистрСведений.Штрихкоды КАК РегШК | ГДЕ | РегШК.Владелец ССЫЛКА Справочник.Номенклатура | И РегШК.ТипШтрихкода В (&ТипыШтрихкодов) |" + ?(мПоддерживаетсяВесовойТовар, " | ОБЪЕДИНИТЬ ВСЕ | ВЫБРАТЬ | РегКоды.Код КАК Штрихкод, | РегКоды.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаИзмерения, | РегКоды.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | РегКоды.СерияНоменклатуры КАК СерияНоменклатуры | ИЗ | РегистрСведений.КодыВесовогоТовара КАК РегКоды |", " |") + " | ) КАК ПзКодыТоваров | ПО ПзТовары.ЕдиницаИзмерения = ПзКодыТоваров.ЕдиницаИзмерения | И ПзТовары.ХарактеристикаНоменклатуры = ПзКодыТоваров.ХарактеристикаНоменклатуры | И ПзТовары.СерияНоменклатуры = ПзКодыТоваров.СерияНоменклатуры |ЛЕВОЕ СОЕДИНЕНИЕ | (ВЫБРАТЬ | РегОстатки.Номенклатура КАК Номенклатура, | РегОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | РегОстатки.СерияНоменклатуры КАК СерияНоменклатуры, | СУММА(РегОстатки.КоличествоОстаток) КАК КоличествоОстаток | ИЗ | (ВЫБРАТЬ | РегТоварыНаСкладах.Номенклатура КАК Номенклатура, | РегТоварыНаСкладах.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | РегТоварыНаСкладах.СерияНоменклатуры КАК СерияНоменклатуры, | РегТоварыНаСкладах.КоличествоОстаток КАК КоличествоОстаток | ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад | И Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый)) КАК РегТоварыНаСкладах | ОБЪЕДИНИТЬ ВСЕ | ВЫБРАТЬ | РегТоварыВРознице.Номенклатура КАК Номенклатура, | РегТоварыВРознице.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, | РегТоварыВРознице.СерияНоменклатуры КАК СерияНоменклатуры, | РегТоварыВРознице.КоличествоОстаток КАК КоличествоОстаток | ИЗ | РегистрНакопления.ТоварыВРознице.Остатки(, Склад = &Склад | И Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый)) КАК РегТоварыВРознице | ) КАК РегОстатки | СГРУППИРОВАТЬ ПО | РегОстатки.Номенклатура, | РегОстатки.ХарактеристикаНоменклатуры, | РегОстатки.СерияНоменклатуры | ) КАК РегОстатки |ПО | РегОстатки.Номенклатура = ПзТовары.Номенклатура | И РегОстатки.ХарактеристикаНоменклатуры = ПзТовары.ХарактеристикаНоменклатуры | И РегОстатки.СерияНоменклатуры = ПзТовары.СерияНоменклатуры |" + ?(ИмеющиесяНаСкладе, " |ГДЕ | ЕСТЬNULL(РегОстатки.КоличествоОстаток, 0) > 0 ИЛИ ПзТовары.Номенклатура.Услуга","")); Запрос.УстановитьПараметр("КассаККМ", мКассаККМ); Запрос.УстановитьПараметр("ТипыШтрихкодов", мТипыШтрихкодов); Запрос.УстановитьПараметр("Склад", ТекущийСклад); Запрос.УстановитьПараметр("МассивНоменклатуры", Массив); Товары = Запрос.Выполнить().Выгрузить(); Товар = Неопределено; Для Каждого Товар Из Товары Цикл Товар.Цена = Ценообразование.ПолучитьЦенуНоменклатуры(Товар.Номенклатура, Товар.ХарактеристикаНоменклатуры, ТипЦен, Неопределено, Товар.ЕдиницаИзмерения); КонецЦикла; КонецПроцедуры // ДействияФормыЗаполнить() |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |