• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

  • Автор темы RZX
  • Дата начала
R

RZX

Здравствуйте!

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

Переношу данные - номенклатуру из 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, СпрНоменклатура.ТекущийЭлемент());

тоже не работает. А как правильно? Что не так?
 
K

KiR

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

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

RZX

Да, спасибо!
Все нормально!

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

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

KiR

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

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

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

Обучение наступательной кибербезопасности в игровой форме. Начать игру!