Как выгрузить список новых созданных контрагентов (создаются программно)
Здравствуйте. Вопрос в том, что загружаю данные из файла эксель, если контрагент не найден, создается новый:
Дальше мне надо создать таблицу значений, верно?
И заполнить данными из СпрКонтрагент.
Но тут еще затык у меня в том, что таблица пустая выходит, даже без колонок. Где не так прописал?
СпрКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
ДанныеДляЗаполнения = ДанныеЕдиныхГосРеестровПоИНН(ИННКонтрагента, ЭтоЮрЛицо);
Если ЗначениеЗаполнено(ДанныеДляЗаполнения.ОписаниеОшибки) Тогда
Сообщить("Контрагент не найден по ИНН:" + ИННКонтрагента + " Номер строки в файле "+ СтрокаТЗ.НомерСтрокиВФайле); //
Возврат;
ИначеЕсли ДанныеДляЗаполнения.Свойство("ЮридическоеФизическоеЛицо") Тогда
Если ДанныеДляЗаполнения.Свойство("ЮридическоеФизическоеЛицо") Тогда
ЭтоЮрЛицо = (ДанныеДляЗаполнения.ЮридическоеФизическоеЛицо = ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо"));
ДополнительныеПараметры = Новый Структура("АдресРеквизитовКонтрагента, ПроверитьИНН", ДанныеДляЗаполнения.АдресРеквизитовКонтрагента, Ложь);
ЗаполнитьРеквизитыНаСервере(СпрКонтрагент, ДополнительныеПараметры.АдресРеквизитовКонтрагента, ДополнительныеПараметры.ПроверитьИНН, СтрокаТЗ);
КонецЕсли;
СпрКонтрагент.Записать();
ПоказатьДальше мне надо создать таблицу значений, верно?
НовыеКонтаргенты = Новый ТаблицаЗначений;
НовыеКонтаргенты.Колонки.Добавить("Контрагент");
НовыеКонтаргенты.Колонки.Добавить("ИНН");
НовыеКонтаргенты.Колонки.Добавить("КПП");
НовыеКонтаргенты.Колонки.Добавить("Адрес");
Для Каждого Строка Из НовыеКонтаргенты Цикл
Строка= НовыеКонтаргенты.Добавить();
Строка.Контрагент = СпрКонтрагент.Наименование;
Строка.ИНН = СпрКонтрагент.ИНН;
Строка.КПП = СпрКонтрагент.КПП;
Строка.Адрес = СпрКонтрагент.КонтактнаяИнформация.Представление;
КонецЦикла;
ПоказатьИ заполнить данными из СпрКонтрагент.
Но тут еще затык у меня в том, что таблица пустая выходит, даже без колонок. Где не так прописал?
По теме из базы знаний
- Бесплатная проверка контрагентов в ФНС (общий модуль с алгоритмом). На примере выводим статус в список справочника контрагентов
- Конфигурация Flowcon
- Как сдать экзамен 1С:Специалист по платформе?
- Как успешно вести маркировку обуви в «1С: Управление торговлей 11.4» со «Складом 15»
- Обзор полезных методов БСП 3.1.4
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
НовыеКонтаргенты = Новый ТаблицаЗначений;
НовыеКонтаргенты.Колонки.Добавить("Контрагент");
НовыеКонтаргенты.Колонки.Добавить("ИНН");
НовыеКонтаргенты.Колонки.Добавить("КПП");
НовыеКонтаргенты.Колонки.Добавить("Адрес");
инициализацию таблицы поднимите за цикл в самый самый верх.
(3)
А уже добавлению в таблицу делайте после
А уже добавлению в таблицу делайте после
СпрКонтрагент.Записать();
Строка= НовыеКонтаргенты.Добавить();
Строка.Контрагент = СпрКонтрагент.Наименование;
Строка.ИНН = СпрКонтрагент.ИНН;
Строка.КПП = СпрКонтрагент.КПП;
Строка.Адрес = СпрКонтрагент.КонтактнаяИнформация.Представление;
Показать
НовыеКонтаргенты = Новый ТаблицаЗначений;
НовыеКонтаргенты.Колонки.Добавить("Контрагент");
НовыеКонтаргенты.Колонки.Добавить("ИНН");
НовыеКонтаргенты.Колонки.Добавить("КПП");
НовыеКонтаргенты.Колонки.Добавить("Адрес");
/////////////
где то тут должен быть цикл вы же не одного контрагента создаете???
//////
СпрКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
ДанныеДляЗаполнения = ДанныеЕдиныхГосРеестровПоИНН(ИННКонтрагента, ЭтоЮрЛицо);
Если ЗначениеЗаполнено(ДанныеДляЗаполнения.ОписаниеОшибки) Тогда
Сообщить("Контрагент не найден по ИНН:" + ИННКонтрагента + " Номер строки в файле "+ СтрокаТЗ.НомерСтрокиВФайле); //
Возврат;
ИначеЕсли ДанныеДляЗаполнения.Свойство("ЮридическоеФизическоеЛицо") Тогда
Если ДанныеДляЗаполнения.Свойство("ЮридическоеФизическоеЛицо") Тогда
ЭтоЮрЛицо = (ДанныеДляЗаполнения.ЮридическоеФизическоеЛицо = ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо"));
ДополнительныеПараметры = Новый Структура("АдресРеквизитовКонтрагента, ПроверитьИНН", ДанныеДляЗаполнения.АдресРеквизитовКонтрагента, Ложь);
ЗаполнитьРеквизитыНаСервере(СпрКонтрагент, ДополнительныеПараметры.АдресРеквизитовКонтрагента, ДополнительныеПараметры.ПроверитьИНН, СтрокаТЗ);
КонецЕсли;
СпрКонтрагент.Записать();
//////////////////////////
Строка= НовыеКонтаргенты.Добавить();
Строка.Контрагент = СпрКонтрагент.Наименование;
Строка.ИНН = СпрКонтрагент.ИНН;
Строка.КПП = СпрКонтрагент.КПП;
Строка.Адрес = СпрКонтрагент.КонтактнаяИнформация.Представление;
Показать
(7)
https://infostart.ru/public/566078/
https://infostart.ru/1c/articles/372778/
https://infostart.ru/1c/articles/190399/
А не подскажите случайно как эту ТЗ выгрузить в эксель? Определенный документ на диске.
Подскажем:
(10) посомтрел все. самый простой и бстрый метод странно работает, ошибка при открывании документа
я прочитал, что метод не самый быстрый, но у меня там булет от силы 20-30 строчек. Не сталкивались?
ПострПечать = Новый ПостроительОтчета;
ПострПечать.ИсточникДанных = Новый ОписаниеИсточникаДанных(НовыеКонтаргенты);
ТабДок = Новый ТабличныйДокумент;
ПострПечать.Вывести(ТабДок);
ТабДок.Записать("D:\Test Base\...\НовыеКонтрагенты.xlsx");
я прочитал, что метод не самый быстрый, но у меня там булет от силы 20-30 строчек. Не сталкивались?
Что это за перл ? Масло масляное. Вы создали пустую таблицу значений. В этот цикл никогда не зайдете.
В обходе коллекции менять итератор в цикле - ну такое...
Для Каждого Строка Из НовыеКонтаргенты Цикл
Строка= НовыеКонтаргенты.Добавить();
В обходе коллекции менять итератор в цикле - ну такое...
Для Каждого Строка Из НовыеКонтаргенты Цикл
Строка= НовыеКонтаргенты.Добавить();
НовыеКонтаргенты = Новый ТаблицаЗначений;
НовыеКонтаргенты.Колонки.Добавить("Контрагент");
НовыеКонтаргенты.Колонки.Добавить("ИНН");
НовыеКонтаргенты.Колонки.Добавить("КПП");
НовыеКонтаргенты.Колонки.Добавить("Адрес");
ДанныеДляЗаполнения = ДанныеЕдиныхГосРеестровПоИНН(ИННКонтрагента, ЭтоЮрЛицо);
Если ЗначениеЗаполнено(ДанныеДляЗаполнения.ОписаниеОшибки) Тогда
Сообщить("Контрагент не найден по ИНН:" + ИННКонтрагента + " Номер строки в файле "+
СтрокаТЗ.НомерСтрокиВФайле); //
//Возврат;
СпрКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
ЗаполнитьРеквизитыНаСервере(СпрКонтрагент,
ДополнительныеПараметры.АдресРеквизитовКонтрагента,
ДополнительныеПараметры.ПроверитьИНН, СтрокаТЗ);
//другие реквизиты контрагента
СпрКонтрагент.Записать();
Строка= НовыеКонтаргенты.Добавить();
Строка.Контрагент = СпрКонтрагент.Наименование;
Строка.ИНН = СпрКонтрагент.ИНН;
Строка.КПП = СпрКонтрагент.КПП;
Строка.Адрес = СпрКонтрагент.КонтактнаяИнформация.Представление;
ИначеЕсли ДанныеДляЗаполнения.Свойство("ЮридическоеФизическоеЛицо") Тогда
Если ДанныеДляЗаполнения.Свойство("ЮридическоеФизическоеЛицо") Тогда
ЭтоЮрЛицо = (ДанныеДляЗаполнения.ЮридическоеФизическоеЛицо =
ПредопределенноеЗначение("Перечисление.ЮридическоеФизическоеЛицо.ЮридическоеЛицо"));
ДополнительныеПараметры = Новый Структура("АдресРеквизитовКонтрагента, ПроверитьИНН",
ДанныеДляЗаполнения.АдресРеквизитовКонтрагента, Ложь);
ЗаполнитьРеквизитыНаСервере(СпрКонтрагент,
ДополнительныеПараметры.АдресРеквизитовКонтрагента,
ДополнительныеПараметры.ПроверитьИНН, СтрокаТЗ);
КонецЕсли;
КонецЕсли;
ПоказатьКороче говоря:
не нашли клиента: создаем,заполняем реквизиты, а потом записываем этого клиента в ТЗ.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот