Загрузка данных в документ из Таблицы значений. #515755


#0 by Serdolik55
Народ такая проблема! Имеется таблица значений, которую я гружу из EXCEL, она получается такого вида: Поставщик   Услуга   НачисленоКОплате(Руб)   Дом1 Поставщик1  Услуга1         15               Поставщик2  Услуга2         13               Поставщик3  Услуга3         20 Поставщик4  Услуга4         40 Дом2 Поставщик1  Услуга1         35 Поставщик2  Услуга2         48 Поставщик3  Услуга3         14 Поставщик4  Услуга4         15 Дом3 Поставщик1  Услуга1         26 Поставщик2  Услуга2         38 Поставщик3  Услуга3         31 Поставщик4  Услуга4         16 ........    .......         ... Нужно на основании этой таблицы заполнить документ (специально сконфигурированный). В шапку документа в поле "Контрагент" должен попадать "Дом",а в табличную часть этого документа Поставщики, Услуги и НачисленоКОплате. Таблица значений очень большая, порядка 5000 строк. У меня никак не получается разграничить "Дом" и "Поставщик", так как они находятся в одной и той же колонке. Делал вариант, когда "Дом" вручную из Справочника выбирать надо, но это устанешь выбирать, домов около 200.Смысл в том что при нажатии кнопки, должно создаться 200 документов с Контрагентом "Дом" и вышеописанной табличной частью. У кого-нибудь есть мысли как заполнить документ?
#1 by Ненавижу 1С
например, если услуга пустая, то это уже новый документ ))
#2 by GenV
Добавить в ТЗ еще одну колонку с домом, а не в общую колонку с поставщиками грузить.
#3 by kroll
Порядок строк в ТЗ именно такой? Если да - перебирая все строки ТЗ смотри, не поменялся ли Дом? Если поменялся - создавай новый документ. Нет - добавляй поставщика...
#4 by kroll
Хотя, не все так однозначно. Как определить - дом или поставщик? В наименовании домов содержится одинаковое для всех домов слово?
#5 by Eugeneer
у дома не заполнены колонки количество и услуга. можно по этому признаку определить
#6 by dryms
Опередил) или начислено к оплате
#7 by palpetrovich
именно при такой структуре - только но правильнее было-бы выгружать как в , тогда-бы можно было пройтись по ТЗ,  делая отбор по кодлонке "Дом"
#8 by Serdolik55
Это понятно, а как "Дом"  "Поставщиком" разгараничить. Получается так: Для каждого Стр Из ТЗ Цикл Новдок = Документы.МойДокумент.Создать; НовДок.Контрагент = ????? Вот Тут попадать должен только Дом, а не поставщик, а при заполнении табличной части наооборот Поставщики
#9 by Eugeneer
какой то риторический вопрос.
#10 by Serdolik55
А как добавить ещё одну колонку с домом? Если в экселе они в одной колонке сидят. Как Дома от Поставщиков отделить?
#11 by catena
Для каждого Стр Из ТЗ Цикл Если Не ЗначениеЗаполнено(Стр.Услуга) Тогда
#12 by Eugeneer
Я думаю справедливо будет автору посоветовать идти учить 1С а не задавать элементарные вопросы на форумах.
#13 by palpetrovich
а как они в эксель попали?
#14 by GenV
Перебором и сравнением с пустой строкой.
#15 by Serdolik55
Для каждого Стр Из ТЗ Цикл Если Не ЗначениеЗаполнено(Стр.Услуга) Тогда А при заполнении ТабЧасти её в цикле обходить не надо? Только один общий цикл по всей таблице? То есть вот так: Для каждого Стр Из ТЗ Цикл Если Не ЗначениеЗаполнено(Стр.Услуга) Тогда НоваяСтрока = Новдок.ТабЧасть.Добавить; НоваяСтрока.Поставщик = Справочники.Контрагенты.НайтиПоНАименованию(СокрЛП(Стр.Поставщик),Истина); - Вот тут Дом не попадёт? КонецЦикла;
#16 by Serdolik55
Учу 1С, как вот сел, так сразу завалили задачей Подомового учёта в Бухгалтерии.
#17 by palpetrovich
#18 by palpetrovich
+ не лишним будет вновь созданный документ еще и записать где-нить :)))
#19 by Serdolik55
Это Да! Спасибо, сейчас буду пробовать!
#20 by catena
"А при заполнении ТабЧасти её в цикле обходить не надо? Только один общий цикл по всей таблице? " Ты же в цикле. Нашел Дом - хоп, документ создал, заполняешь строки. Нашел следующий дом - записал предыдущий док, создал новый. А цикл один.
#21 by palpetrovich
#22 by palpetrovich
+21 млин, Док=ТекСтрока.Док; забыл втулить :)
#23 by Serdolik55
Спасибо огромное! Получилось!
Тэги: Математика и алгоритмы
Ответить:
Комментарии доступны только авторизированным пользователям