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

Заполнить программно партию в документе "Ввод начальных остатков"

Автор Ирина1109, 27 мар 2016, 12:03

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

Ирина1109

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


         Док = Документ.ПолучитьОбъект();

Для каждого СтрокаТаблицы Из Док.МПЗОтгруженные Цикл
  СтрокаТаблицы.Партия = Документы.ДокументРасчетовСКонтрагентом.НайтиПоНомеру("0s00000002");
КонецЦикла;

Hedinnk

Если у Вас установлен период уникальности номеров документов то в
Документы.ДокументРасчетовСКонтрагентом.НайтиПоНомеру("0s00000002");
вторым параметром надо передавать дату интервала уникальности документа.
Из синтакс-помощника:
Цитировать<ДатаИнтервала> (необязательный)

Тип: Дата.
Дата из интервала, в котором проводится поиск по номеру. Сам интервал определяется как период уникальности номеров документа, в который входит указанная дата. Например, если номера документов уникальны в пределах месяца и задана дата 10 декабря 2001 года, то поиск будет проводиться в интервале с 01 по 31 декабря 2001 года.
Параметр используется для документов с периодической нумерацией.

Ирина1109

Цитата: Hedinnk от 27 мар 2016, 15:09
Если у Вас установлен период уникальности номеров документов то в
Документы.ДокументРасчетовСКонтрагентом.НайтиПоНомеру("0s00000002");
вторым параметром надо передавать дату интервала уникальности документа.
Из синтакс-помощника:
Цитировать<ДатаИнтервала> (необязательный)

Тип: Дата.
Дата из интервала, в котором проводится поиск по номеру. Сам интервал определяется как период уникальности номеров документа, в который входит указанная дата. Например, если номера документов уникальны в пределах месяца и задана дата 10 декабря 2001 года, то поиск будет проводиться в интервале с 01 по 31 декабря 2001 года.
Параметр используется для документов с периодической нумерацией.


Кажется дело не в этом. Смотрю через отладчик и СтрокаТаблицы не определяется - скриншот в приложенном файле.


Hedinnk


Ирина1109

Цитата: Hedinnk от 27 мар 2016, 16:41
Покажите весь код процедуры

Там пока кроме этого больше ничего и нет


&НаСервере
Процедура ЗагрузитьПартииНаСервере()

Док = Документ.ПолучитьОбъект();

Для каждого СтрокаТаблицы Из Док.МПЗОтгруженные Цикл
  СтрокаТаблицы.Партия = Документы.ДокументРасчетовСКонтрагентом.НайтиПоНомеру("0s00-000002", '2015-12-31');
КонецЦикла;
КонецПроцедуры

vitasw

1.
Цитата: Ирина1109 от 27 мар 2016, 16:46Документ.ПолучитьОбъект();

Документ - это реквизит формы или объекта?
2.
Цитата: Ирина1109 от 27 мар 2016, 12:03но не работает..подскажите в чем ошибка
Не работает - это как понимать. Ошибок нет, но не выполняет те функции, которые вы ожидаете; или есть ошибка, но вы ее забыли привести?

LexaK

1.проверьте переменную Документ, похоже что она пустая.
2.документ партии надо получить ОДИН раз до цикла, (если у вас 1000... строк в ТЧ, то столько же раз вы ищите этот(один и тотже документ)
3.после правки документа его необходимо записать

вот ваш код с примерными исправлениями

&НаСервере
Процедура ЗагрузитьПартииНаСервере()

//проверка на заполненность переменной документ
Если ЗначениеЗаполнено(Документ) Тогда

     Док = Документ.ПолучитьОбъект();

     //один раз получаем документ партии
     лкПартия = Документы.ДокументРасчетовСКонтрагентом.НайтиПоНомеру("0s00-000002", Дата(2015,12,31));

     Для каждого СтрокаТаблицы Из Док.МПЗОтгруженные Цикл
          СтрокаТаблицы.Партия = лкПартия;
     КонецЦикла;

    //запись можно сделать за два приема, и при необходимости взять в попытку
    Док.Записать(РежимЗаписиДокумента.Проведение);

Иначе
    Сообщить("Не выбран Документ");
КонецЕсли;   

КонецПроцедуры

если помогло нажмите: Спасибо!

Теги:

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

Рейтинг@Mail.ru

Поиск