• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы 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)
 
Мы в соцсетях:

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