|
Не заполняет количество в ТЧ | ☑ | ||
---|---|---|---|---|
0
Alex70
26.06.18
✎
10:04
|
Всем привет! Прошу камнями сильно не кидать, не давно начал изучать 1С. Суть задачи необходимо получить Спецификацию из нее взять детали входящие в продукцию(напр. Поддон, шкаф №322 и тп), и сделать отбор по складу. По окончанию в табличную часть вывести количество деталей по определенной продукции. Ошибок не выдает, но и не заполняет количество. Что делаю не так? Думаю что то
не так связал или вообще что то криво сделал. Подскажите пожалуйста Код приведет ниже __________________________________________________ Процедура ЗаполнитьТЧФормы(Версия = Неопределено) Родитель = Неопределено; Список = Новый СписокЗначений; Список.Добавить("Здание"); Список.Добавить("Каркас"); Список.Добавить("Установка"); Список.Добавить("Поддон"); Список.Добавить("Блок дверной"); Список.Добавить("Коробка"); ЗапросЗапущено = Новый Запрос; ЗапросЗапущено.Текст = "ВЫБРАТЬ | СУММА(ЗаданияНаВыпускОбороты.КоличествоПриход) КАК КоличествоПриход |ИЗ | РегистрНакопления.ЗаданияНаВыпуск.Обороты( | , | , | , | Номенклатура = &Номенклатура | И Заказ.НоменклатурнаяГруппа = &НоменклатурнаяГруппа) КАК ЗаданияНаВыпускОбороты |ГДЕ | ЗаданияНаВыпускОбороты.КоличествоПриход > 0"; ЗапросСпецификаций = Новый Запрос; ЗапросСпецификаций.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 | ЗаданиеНаПроизводствоВыпускТехПроцесс.Спецификация |ПОМЕСТИТЬ ВТ_Спецификации |ИЗ | Документ.ЗаданиеНаПроизводство.ВыпускТехПроцесс КАК ЗаданиеНаПроизводствоВыпускТехПроцесс |ГДЕ | ЗаданиеНаПроизводствоВыпускТехПроцесс.Номенклатура = &Номенклатура | И ЗаданиеНаПроизводствоВыпускТехПроцесс.НоменклатурнаяГруппа = &НоменклатурнаяГруппа | |СГРУППИРОВАТЬ ПО | ЗаданиеНаПроизводствоВыпускТехПроцесс.Спецификация |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ВТ_Спецификации.Спецификация, | ЗаданиеНаПроизводствоИсходныеКомплектующие.Номенклатура, | СУММА(ЗаданиеНаПроизводствоИсходныеКомплектующие.Количество) КАК Количество |ИЗ | ВТ_Спецификации КАК ВТ_Спецификации | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаданиеНаПроизводство.ИсходныеКомплектующие КАК ЗаданиеНаПроизводствоИсходныеКомплектующие | ПО ВТ_Спецификации.Спецификация = ЗаданиеНаПроизводствоИсходныеКомплектующие.Номенклатура | |СГРУППИРОВАТЬ ПО | ВТ_Спецификации.Спецификация, | ЗаданиеНаПроизводствоИсходныеКомплектующие.Номенклатура"; Для Каждого стрТовар Из ГрупповаяСпецификация.Товары Цикл // ЗапросЗапущено ЗапросЗапущено.УстановитьПараметр("Номенклатура", стрТовар.Номенклатура); стрПродукция = ГрупповаяСпецификация.СборочныеЕдиницы.Найти(стрТовар.НомерКолонки, "НомерКолонки"); Если стрПродукция = Неопределено Тогда Продолжить; КонецЕсли; ЗапросЗапущено.УстановитьПараметр("НоменклатурнаяГруппа", стрПродукция.НоменклатурнаяГруппа); ВыборкаЗапущено = ЗапросЗапущено.Выполнить().Выбрать(); // ЗапросСпецификаций ЗапросСпецификаций.УстановитьПараметр("Номенклатура", стрТовар.Номенклатура); стрСпецификация = ГрупповаяСпецификация.СборочныеЕдиницы.Найти(стрТовар.НомерКолонки, "НомерКолонки"); Если стрСпецификация = Неопределено Тогда Продолжить; КонецЕсли; ЗапросСпецификаций.УстановитьПараметр("НоменклатурнаяГруппа", стрСпецификация.НоменклатурнаяГруппа); ВыборкаСпецификаций = ЗапросСпецификаций.Выполнить().Выбрать(); ПоискПоКодуСтроки = табТовары.Строки.НайтиСтроки(Новый Структура("КодСтроки, Наименование, Артикул, Номенклатура",стрТовар.КодСтроки,стрТовар.Наименование,стрТовар.Артикул,стрТовар.Номенклатура),Истина); Если ПоискПоКодуСтроки.Количество() > 0 Тогда ПоискПоКодуСтроки = ПоискПоКодуСтроки[0]; ПоискПоКодуСтроки["ИЗД"+стрТовар.НомерКолонки] = стрТовар.Количество; Иначе Если стрТовар.КодСвязи = "" Тогда строкаФормы = табТовары.Строки.Добавить(); ЗаполнитьЗначенияСвойств(строкаФормы,стрТовар); строкаФормы["ИЗД"+стрТовар.НомерКолонки] = стрТовар.Количество; Если ВыборкаЗапущено.Следующий() Тогда строкаФормы["ЗАП"+стрТовар.НомерКолонки] = ВыборкаЗапущено.КоличествоПриход; строкаФормы["МЕХ"+стрТовар.НомерКолонки] = ВыборкаЗапущено.КоличествоПриход; КонецЕсли; Если ВыборкаСпецификаций.Следующий() Тогда строкаФормы["ПОКР"+стрТовар.НомерКолонки] = ВыборкаСпецификаций.Количество; КонецЕсли; Иначе // БылоНайдено = Ложь; Для Каждого Элемент Из Список Цикл Если Найти(стрТовар.Наименование,Элемент.Значение) > 0 Тогда БылоНайдено = Истина; КонецЕсли; КонецЦикла; ПоискПоКодуСвязи = табТовары.Строки.Найти(стрТовар.КодСвязи,"КодСтроки",Истина); Если ПоискПоКодуСвязи <> Неопределено Тогда Если БылоНайдено ИЛИ Сред(ПоискПоКодуСвязи.Артикул,12,1) = "." Тогда строкаФормы = ПоискПоКодуСвязи.Строки.Добавить(); ЗаполнитьЗначенияСвойств(строкаФормы,стрТовар); строкаФормы["ИЗД"+стрТовар.НомерКолонки] = стрТовар.Количество; Если ВыборкаЗапущено.Следующий() Тогда строкаФормы["ЗАП"+стрТовар.НомерКолонки] = ВыборкаЗапущено.КоличествоПриход; строкаФормы["МЕХ"+стрТовар.НомерКолонки] = ВыборкаЗапущено.КоличествоПриход; КонецЕсли; Если ВыборкаСпецификаций.Следующий() Тогда строкаФормы["ПОКР"+стрТовар.НомерКолонки] = ВыборкаСпецификаций.Количество; КонецЕсли; Иначе Продолжить; КонецЕсли; КонецЕсли; КонецЕсли; КонецЕсли; КонецЦикла; ПересчитатьСуммуСтроки(); СписокОбхода = Новый СписокЗначений; // Разворачивает уровни Для Каждого Узел Из табТовары.Строки Цикл СписокОбхода.Добавить(Узел); ЭлементыФормы.Товары.Развернуть(Узел,Истина); КонецЦикла; КонецПроцедуры |
|||
1
Darych
26.06.18
✎
10:07
|
в отладчик
|
|||
2
DrShad
26.06.18
✎
10:13
|
лучше весь этот код стереть и начать заново
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |