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

Работа в табличной части

Автор sali, 26 фев 2025, 10:52

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

sali

доброго дня всем, вопрос таков как убрать лишние булева в таб части . есть такая форма загрузки с xmlСнимок экрана (164).png
в ней мне не нравиться , что булевые значения приходят и на строки с товаром , а хотелось бы чтобы только в верхней части (до товаров) они отображались.
это своего рода приход чеков / реализация
<root>
<doc_hd ID_ARTIX_DOCUMENT="628983757" SHOP_NUMBER="1234" DAT_SALE="2025-02-20" CASH_CODE="1" IS_RETURN="0" FISCALIDENTIFIER="74937380440801149824" NOM_SHIFT="1000" CASHLESS="0" VID_OPL="MIR Credit">
<doc_det ID_GOOD="3142394" KOL_GOOD="1" PRICE="54.50" STO_GOOD="81.75"/>
</doc_hd>
<doc_hd ID_ARTIX_DOCUMENT="628983758" SHOP_NUMBER="1234" DAT_SALE="2025-02-20" CASH_CODE="1" IS_RETURN="0" FISCALIDENTIFIER="74947380440801149824" NOM_SHIFT="1000" CASHLESS="0" VID_OPL="Visa">
<doc_det ID_GOOD="3087487" KOL_GOOD="1" PRICE="194.00" STO_GOOD="219.00"/>
<doc_det ID_GOOD="3111590" KOL_GOOD="3" PRICE="85.00" STO_GOOD="85.00"/>
<doc_det ID_GOOD="3143263" KOL_GOOD="1" PRICE="149.00" STO_GOOD="149.00"/>
<doc_det ID_GOOD="3143271" KOL_GOOD="1" PRICE="129.00" STO_GOOD="129.00"/>
</doc_hd>
</root>

LexaK

так форма же управляемая, просто в настройках скройте это поле
если помогло нажмите: Спасибо!

sali

LexaK, у меня получилось скрыть его так    Если объект.ДанныеФайлаРеализации[1].ОплатаБезналом = ложь и Объект.ДанныеФайлаРеализации[1].ЭтоВозврат = ложь тогда
                        НоваяСтрокаТовара.ОплатаБезналом = "привет";
                    конецесли;
                   
Снимок экрана (165).png как бы прекрасно да? но вот он неправильно отрабатывает на строку
НоваСтрока.ОплатаБезналом = ?(Док_НД_Релиз.Атрибуты[7].ЗначениеУзла = 0, ложь, истина);ставить галочку тогда когда оплата безналом равна 0 , но он ставит ее даже когда она равна 1. как так, по коду прохожу стоит 1 он переходит к истине и ставит галку, даже прописываешь если значение узла такого-то атрибута равно 1 или значение = "nal" тогда ЛОЖЬ - не помогает

antoneus

А в значении узла не строка сидит? Сейчас он ставит галку, если значение узла не равно числу 0. Любая строка не равна числу.

sali

antoneus, строка.... как же не заметил ....

sali

antoneus, вопрос такой: как обходить лишь товары из чека когда создаешь документ?
Снимок экрана (166).png
это результат цикла &НаСервере
функция СоздатьРеализациюНаСервере()   

НовыйДокумент = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата(); 

Для Каждого СтрокаДанных Из Объект.ДанныеФайлаРеализации Цикл  //конкретно вот этой


КонецЦикла; 

НовыйДокумент.Записать(РежимЗаписиДокумента.Запись);

Возврат НовыйДокумент.Ссылка;
КонецФункции


это полностью код команд Создать документ реализации
&НаКлиенте
Процедура СоздатьРеализацию(Команда)

Если НЕ ЗначениеЗаполнено(Объект.ДанныеФайлаРеализации)  Тогда
Сообщить("Заполните табличную часть!");
Возврат;
Иначе
СсылкаНаРеализацию = СоздатьРеализациюНаСервере();
ПараметрыФормы = Новый Структура("Ключ", СсылкаНаРеализацию);
ОткрытьФорму("Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента", ПараметрыФормы);
КонецЕсли;

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

&НаСервере
функция СоздатьРеализациюНаСервере()   

НовыйДокумент = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата(); 

Для Каждого СтрокаДанных Из Объект.ДанныеФайлаРеализации Цикл 

Строка = НовыйДокумент.Товары.Добавить();
//Наименование = СтрокаДанных.Номенклатура;
Строка.Номенклатура = СтрокаДанных.Номенклатура;
Строка.Количество  = СтрокаДанных.Количество;
Строка.Всего = СтрокаДанных.Сумма;
Строка.Сумма  = СтрокаДанных.Сумма;
Строка.Цена = СтрокаДанных.Цена;         

Организация = справочники.Организации.ОрганизацияПоУмолчанию();
СчетаУчетаНоменклатуры = БухгалтерскийУчетПовтИсп.ПолучитьСчетаУчетаНоменклатуры(Организация, Строка.Номенклатура.Ссылка);
ЗаполнитьЗначенияСвойств(Строка, СчетаУчетаНоменклатуры);

КонецЦикла; 

НовыйДокумент.Записать(РежимЗаписиДокумента.Запись);

Возврат НовыйДокумент.Ссылка;
КонецФункции

он получает все данные , а нужны только товары как это обойти?
Снимок экрана (167).png

sali

нормально ли будет что я задал такое условие? &НаСервере
функция СоздатьРеализациюНаСервере()   

НовыйДокумент = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
НовыйДокумент.Дата = ТекущаяДата(); 


Для Каждого СтрокаДанных Из Объект.ДанныеФайлаРеализации Цикл
если строкаданных.ВидОплаты = "" тогда

Строка = НовыйДокумент.Товары.Добавить();
//Наименование = СтрокаДанных.Номенклатура;
Строка.Номенклатура = СтрокаДанных.Номенклатура;
Строка.Количество  = СтрокаДанных.Количество;
Строка.Всего = СтрокаДанных.Сумма;
Строка.Сумма  = СтрокаДанных.Сумма;
Строка.Цена = СтрокаДанных.Цена;         

Организация = справочники.Организации.ОрганизацияПоУмолчанию();
СчетаУчетаНоменклатуры = БухгалтерскийУчетПовтИсп.ПолучитьСчетаУчетаНоменклатуры(Организация, Строка.Номенклатура.Ссылка);
ЗаполнитьЗначенияСвойств(Строка, СчетаУчетаНоменклатуры);
конецесли;
КонецЦикла; 

НовыйДокумент.Записать(РежимЗаписиДокумента.Запись);

Возврат НовыйДокумент.Ссылка;
КонецФункции

и оно работает :D

antoneus

Ну две тз - одна с данными шапки, другая с товарами, в обеих колонка ID_ARTIX_DOCUMENT, из первой тз заполняем шапку, ищем строки во второй по ID_ARTIX_DOCUMENT, заполняем тч.

Или дерево.

sali

antoneus, я вас не совсем понял.

antoneus

Ну, структура файла - root, в нем массив из doc_hd, в каждом doc_hd - массив из doc_det.
Лепим две тз, в одну складываем данные из doc_hd (ID_ARTIX_DOCUMENT, SHOP_NUMBER, DAT_SALE, CASH_CODE, IS_RETURN, FISCALIDENTIFIER, NOM_SHIFT, CASHLESS, VID_OPL) ну или какие там поля нам нужны.
Во вложенном цикле идем по doc_det, складываем данные по товарам в другую тз и заполняем в ней поле ID_ARTIX_DOCUMENT.

При создании документов идем по первой тз, заполняем из нее шапку. Методом НайтиСтроки ищем во второй ТЗ строки с товарами по текущему значению ID_ARTIX_DOCUMENT. Заполняем тч документа Товары.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск