Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
04 мар 2025, 15:55

орп

Автор sali, 28 фев 2025, 08:06

0 Пользователей и 1 гость просматривают эту тему.

sali

antoneus, а с них как тч загурзки заполнять . еще раз прописывать что номер тчзагрузка.номермагазина = стршапка.номермагазина?

antoneus


sali

antoneus, окей пустая форма
Для Каждого Элемент1 Из ДокументРеализация.ЭлементДокумента.ДочерниеУзлы Цикл
Если Элемент1.ИмяУзла = "doc_hd" Тогда

Док_НД_Релиз = Элемент1;
            Для Каждого Элемент2 Из Элемент1.ДочерниеУзлы Цикл 
Если Элемент2.ИмяУзла = "doc_det" Тогда
Док_Дет_Релиз = Элемент2;


СТР = Шапка.Добавить();
Стр.ФиксНомер =  Док_НД_Релиз.Атрибуты[5].ЗначениеУзла;
Стр.НомерМагазина  = Док_НД_Релиз.Атрибуты[1].ЗначениеУзла;
Стр.НомерСмены   = Док_НД_Релиз.Атрибуты[6].ЗначениеУзла;     
Стр.ОплатаБезналом = ?(Док_НД_Релиз.Атрибуты[7].ЗначениеУзла = "0", истина, ложь);
Стр.ВидОплаты   = Док_НД_Релиз.Атрибуты[8].ЗначениеУзла;     

СтрШапки = РеквизитыШапки.Добавить();
СтрШапки.Номенклатура   = Справочники.Номенклатура.НайтиПоКоду(Док_Дет_Релиз.Атрибуты[0].ЗначениеУзла);
СтрШапки.Количество     = Док_Дет_Релиз.Атрибуты[1].ЗначениеУзла;
СтрШапки.Цена   = Док_Дет_Релиз.Атрибуты[2].ЗначениеУзла;
СтрШапки.Сумма       = СтрШапки.Цена * СтрШапки.Количество;

КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;

ПарсерРеализации.Закрыть();

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

sali

ааа блин. извините

sali

Цитата: antoneus от 28 фев 2025, 13:10Первую таблицу сворачиваем - по магазину и смене, например (и по прочим данным шапки). Во второй таблице оставляем колонки с магазином и номером смены, например - или с теми данными, по которым можно ОДНОЗНАЧНО определить, к какому документу относится строка таблицы. Далее цикл по первой таблице. Создаем документ, заполняем шапку. С помощью НайтиСтроки находим по отбору строки во второй таблице. Заполняем табличные части. Записываем документ, переходим к следующему.
как это все делать?

sali

метод свернуть не отображается

antoneus

Да, на сервере выгрузить в тз, свернуть, загрузить обратно.

Максим75

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

sali

antoneus, Максим75, &НаСервере
Процедура ПрочитатьРеализациюНаСервере()
Объект.ДанныеФайлаРеализации.Очистить();
Попытка
    ПарсерРеализации = Новый ЧтениеXML;
    ПарсерРеализации.ОткрытьФайл(Объект.ПутьКФайлуРеализация);
Исключение
Сообщить("При открытии файла произошла ошибка. Операция прервана!");
Сообщить(ОписаниеОшибки());         
Возврат;
КонецПопытки; 

ПостроительРеализация = Новый ПостроительDOM;
ДокументРеализация = ПостроительРеализация.Прочитать(ПарсерРеализации); 

Для Каждого Элемент1 Из ДокументРеализация.ЭлементДокумента.ДочерниеУзлы Цикл
Если Элемент1.ИмяУзла = "doc_hd" Тогда

Док_НД_Релиз = Элемент1;
            Для Каждого Элемент2 Из Элемент1.ДочерниеУзлы Цикл 
Если Элемент2.ИмяУзла = "doc_det" Тогда
Док_Дет_Релиз = Элемент2;

СТР = Шапка.Добавить();
Стр.ФиксНомер =  Док_НД_Релиз.Атрибуты[5].ЗначениеУзла;
Стр.НомерМагазина  = Док_НД_Релиз.Атрибуты[1].ЗначениеУзла;
Стр.НомерСмены   = Док_НД_Релиз.Атрибуты[6].ЗначениеУзла;     
Стр.ОплатаБезналом = ?(Док_НД_Релиз.Атрибуты[7].ЗначениеУзла = "0", истина, ложь);
Стр.ВидОплаты   = Док_НД_Релиз.Атрибуты[8].ЗначениеУзла;
Стр.ЭтоВозврат = ?(Док_НД_Релиз.Атрибуты[4].ЗначениеУзла = "1", истина, ложь);
Стр.ДатаПродажи    = Док_НД_Релиз.Атрибуты[2].ЗначениеУзла;
 

СтрШапки = РеквизитыШапки.Добавить();
СтрШапки.Номенклатура   = Справочники.Номенклатура.НайтиПоКоду(Док_Дет_Релиз.Атрибуты[0].ЗначениеУзла);
СтрШапки.Количество     = Док_Дет_Релиз.Атрибуты[1].ЗначениеУзла;
СтрШапки.Цена   = Док_Дет_Релиз.Атрибуты[2].ЗначениеУзла;
СтрШапки.Сумма       = СтрШапки.Цена * СтрШапки.Количество;
СтрШапки.НомерМагазина  = Док_НД_Релиз.Атрибуты[1].ЗначениеУзла;
СтрШапки.НомерСмены   = Док_НД_Релиз.Атрибуты[6].ЗначениеУзла;     

НоваСтрока = Объект.ДанныеФайлаРеализации.Добавить();
                    НоваСтрока.ФиксНомер   = Стр.ФиксНомер;
НоваСтрока.НомерМагазина  = Стр.НомерМагазина;
НоваСтрока.НомерСмены   = Стр.НомерСмены;     
НоваСтрока.ДатаПродажи    = Стр.ДатаПродажи;
НоваСтрока.ОплатаБезналом = Стр.ОплатаБезналом;
НоваСтрока.ВидОплаты   = Стр.ВидОплаты;
НоваСтрока.ЭтоВозврат     = Стр.ЭтоВозврат;   
НоваСтрока.Номенклатура   = СтрШапки.Номенклатура;
НоваСтрока.Количество     = СтрШапки.Количество ;
НоваСтрока.Цена   = СтрШапки.Цена;
    НоваСтрока.Сумма   = СтрШапки.Сумма;     

КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;

ПарсерРеализации.Закрыть();

КонецПроцедуры 
вот здесь

Максим75

sali, и-и-и, где желание свернуть некую таблицу значений в этом коде?

Теги:
Рейтинг@Mail.ru

Поиск