Задача: заполнить документ ОперацииБух некоторыми записями.
Сложность возникает с записями у которых тип субконто один на несколько типов объектов. Например, поступление товаров и услуг и счет фактура имеют общий тип субконто "Счета-фактуры выданные".
Я сначала делаю таблицу всех доступных мне типов субконтов
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВидыСубконтоХозрасчетные.Ссылка,
| ВидыСубконтоХозрасчетные.ТипЗначения
|ИЗ
| ПланВидовХарактеристик.ВидыСубконтоХозрасчетные КАК ВидыСубконтоХозрасчетные";
Результат = Запрос.Выполнить();
ТЗВидыСубконто = Результат.Выгрузить();
ТЗВидыСубконтоРаздельно = Новый ТаблицаЗначений;
ТЗВидыСубконтоРаздельно = ТЗВидыСубконто.СкопироватьКолонки();
Для каждого стрОТ из ТЗВидыСубконто Цикл
МассивТиповРазд = стрОТ.ТипЗначения.Типы();
ии=0;
Пока ии<МассивТиповРазд.Количество() Цикл
стрРаздельно = ТЗВидыСубконтоРаздельно.Добавить();
стрРаздельно.Ссылка = стрОТ.Ссылка;
МассивТипов = Новый Массив;
ТипРазд = МассивТиповРазд[ии];
МассивТипов.Добавить(ТипРазд);
ОписаниеТиповРазд = Новый ОписаниеТипов(МассивТипов);
стрРаздельно.ТипЗначения = ОписаниеТиповРазд;
ии=ии+1;
КонецЦикла;
КонецЦикла
Потом заполняю вот так
МассивТипов = Новый Массив;
ТипСуб = ТипЗнч(НайтиОбъект(стр[Измерение.Значение]));
МассивТипов.Добавить(ТипСуб);
ОписаниеТиповСубконто = Новый ОписаниеТипов(МассивТипов);
строкаСубконто = ТЗВидыСубконтоРаздельно.Найти(ОписаниеТиповСубконто,"ТипЗначения");
Если строкаСубконто <> Неопределено Тогда
В общем с учетом, что это разовая операция и строк с ошибками не много, я решил грузить в режиме обмена данными и поправить руками.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший