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

Занести запись в определенный справочник

Автор bony_ann, 06 сен 2018, 14:28

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

bony_ann

Есть общий список контрагентов и партнеров. Я по определенному условию хочу разносить их по справочникам. Как программно указать в какой именно справочник заносить при выполнении условия?

Каримдат

По справочникам? Или по папка в справочнике Контрагенты?

bony_ann

Каримдат, по справочникам
Добавлено: 06 сен 2018, 15:01


Каримдат, если это контрагент, то в справочник "Контрагенты", а если партнер, то соответственно в справочник "Партнеры"

Каримдат

В другом посте ответил на ваш вопрос

bony_ann

Каримдат, спасибо) только вопрос уже не в том, я нашла по какому признаку делать условие
вопрос как заносить в определенный справочник программно
пишу так: Для Каждого ТекСтрока из ТаблицаКонтрагентов Цикл

Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(ТекСтрока.Наименование);
Партнер    = Справочники.Партнеры.НайтиПоНаименованию(ТекСтрока.Наименование);

Если ЗначениеЗаполнено(Контрагент.ИНН) ИЛИ ЗначениеЗаполнено(Контрагент.КПП) Тогда
Если НЕ Контрагент.Пустая() Тогда
Продолжить;
Иначе
КонтрагентСтрока = СоздатьКонтрагента(ТекСтрока); // СоздатьКонтрагента - функция
Справочники.Контрагенты.СоздатьЭлемент(КонтрагентСтрока);
КонецЕсли;
Иначе
Если НЕ Партнер.Пустая() Тогда
Продолжить;
Иначе
ПартнерСтрока = СоздатьПартнера(ТекСтрока);  // СоздатьПартнера - функция
Справочники.Партнеры.СоздатьЭлемент(ПартнерСтрока);
КонецЕсли;
КонецЕсли;

КонецЦикла;


При выполнении выдает ошибку : Слишком много фактических параметров

alex0402

Цитата: bony_ann от 06 сен 2018, 15:57КонтрагентСтрока = СоздатьКонтрагента(ТекСтрока); // СоздатьКонтрагента - функция
                Справочники.Контрагенты.СоздатьЭлемент(КонтрагентСтрока);
Что такое СоздатьКонтрагента? я так понимаю функция и что она возвращает?

Справочники.Контрагенты.СоздатьЭлемент(КонтрагентСтрока) - если почитать СП, то СоздатьЭлемент не получает никаких параметров и возвращает СправочникОбъект.

Правильная запись нового справочника:
Объект = Справочники.Контрагенты.СоздатьЭлемент()
Объект.Наименование = Наименование
///другие реквизиты
Объект.Записать();
Спасибо за Сказать спасибо

bony_ann

alex0402, &НаСервере
Функция СоздатьКонтрагента(ТекСтрока)

Контрагент = Справочники.Контрагенты.СоздатьЭлемент();
// Контрагент.Код = Формат(ТекСтрока.Код, "ЧГ =0");
Контрагент.Наименование = ТекСтрока.Наименование;
Контрагент.НаименованиеПолное = ТекСтрока.НаименованиеПолн;
Контрагент.ИНН = ТекСтрока.УНП;
Контрагент.КПП = ТекСтрока.УНП;
Контрагент.КодПоОКПО = ТекСтрока.ОКПО;
Контрагент.Партнер = Справочники.Партнеры.НайтиПоНаименованию(ТекСтрока.Наименование);
Контрагент.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;

Адрес = Контрагент.КонтактнаяИнформация.Добавить();
Адрес.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента;
Адрес.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес;
Адрес.Представление = СокрЛП(ТекСтрока.АдресПолный);
Адрес.Город = СокрЛП(ТекСтрока.Город);
Адрес.Регион = СокрЛП(ТекСтрока.Область);

Если ТекСтрока.email.Количество()>0 Тогда
Для каждого ЭлАдреса из ТекСтрока.email Цикл
Email = Контрагент.КонтактнаяИнформация.Добавить();
Email.Вид = Справочники.ВидыКонтактнойИнформации.EmailОрганизации;
Email.Тип = Перечисления.ТипыКонтактнойИнформации.АдресЭлектроннойПочты;
Email.Представление = СокрЛП(ЭлАдреса);
КонецЦикла;
КонецЕсли;

Контрагент.Записать();

Возврат ТекСтрока

КонецФункции

KOI8-R

Справочники.Контрагенты.СоздатьЭлемент(КонтрагентСтрока);
у метода СоздатьЭлемент() менеджера справочника нет параметров.

Вообще, согласно вашему коду вы передаете какую то структуру в в функцию и по этой структуре создаете контрагента, и возвращаете обратно ту же структуру, а не контрагента. И затем еще пытаетесь через менеджер справочнику создать еще одного контрагента также передав в него эту самую структуру.

alex0402

Цитата: bony_ann от 06 сен 2018, 16:33Возврат ТекСтрока

Я, так понял, что функция возвращает собственный параметр! Зачем?

можно Возврат Контрагент.Ссылка.

И контрагент по выходу из функции уже создан и далее
Справочники.Контрагенты.СоздатьЭлемент(КонтрагентСтрока); - просто не нужно!!!
Спасибо за Сказать спасибо

Теги:

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

Рейтинг@Mail.ru

Поиск