ОБСУЖДЕНИЕ

Новый элемент справочника в обработке и операция

3 ответов 5 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Здравствуйте!

Подскажите по небольшой проблеме. Думаю, яйца выеденного не стоит, но все же бьюсь уже несколько часов.

Переношу данные - номенклатуру из 1С 6 в обработке сразу с записью остатков.
Проблема не в самом переносе, а в выделенной строке:

Код:
Процедура Выполнить()
DBF = СоздатьОбъект("XBase");

DBF.ОткрытьФайл("E:\export.DBF");
СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
Операция = СоздатьОбъект("Операция");

Операция.Новая();

Операция.ДатаОперации = НачДата;
Операция.Содержание = "Перенос остатков по товарам";

Операция.СуммаОперации = 0;

Если DBF.Открыта() = 0 Тогда
Сообщить("Ошибка открытия!");
СтатусВозврата(0);
КонецЕсли;

DBF.Первая();

Пока DBF.Следующая() <> 0 Цикл
СпрНоменклатура.Новый();
СпрНоменклатура.Наименование = DBF.NAME;
СпрНоменклатура.Цена = DBF.PRICE;
СпрНоменклатура.ЦенаИзготовителя = DBF.PRICE;
СпрНоменклатура.Себестоимость = DBF.PRICE;

Операция.НоваяПроводка();

Операция.СодержаниеПроводки = "Ввод остатков по товарам Дт 41.1 Кт 00";
Операция.Количество = DBF.QUANTITY;
Операция.Сумма = DBF.PRICE * DBF.QUANTITY;

Операция.Д*цензура*.Счет = СчетПоКоду("41.1");

Операция.Д*цензура*.Субконто(1, СпрНоменклатура); ///////////////////////////////////////////////// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Операция.Д*цензура*.Субконто(2, ВыбМестаХранения);
Операция.Д*цензура*.Субконто(3, ВыбМОЛ);

Операция.Кредит.Счет = СчетПоКоду("00");

СпрНоменклатура.Записать();
Операция.Записать();

КонецЦикла;

DBF.ЗакрытьФайл();
КонецПроцедуры

И в общем-то все работает замечательно за исключением выделенной строки.

ВыбМестаХранения и ВыбМОЛ - элементы формы обработки
При окончании работы обработки в проводках по первому субконто должен быть элемент справочника, а выдает <...>
С местом хранения и МОЛ вопросов нет.

Так: Операция.Д*цензура*.Субконто(1, СпрНоменклатура.ТекущийЭлемент());

тоже не работает. А как правильно? Что не так?
 
СпрНоменклатура.Записать();

перед Операция.НоваяПроводка(); просто элемент справочника создается, но не записывается.
 
Да, спасибо!
Все нормально!

Работает, если разместить эапись справочника перед созданием операции и
если

Операция.Д*цензура*.Субконто(1, СпрНоменклатура.ТекущийЭлемент());
 
Так: Операция.Д*цензура*.Субконто(1, СпрНоменклатура.ТекущийЭлемент());

тоже не работает. А как правильно? Что не так?
Работает, если разместить эапись справочника перед созданием операции и
если

Операция.Д*цензура*.Субконто(1, СпрНоменклатура.ТекущийЭлемент());
Где логика?! B)