Программно записать серийники

Тема в разделе "1C и всё что с ней связано", создана пользователем Спартак, 2 дек 2010.

  1. Спартак

    Спартак Well-Known Member

    Регистрация:
    2 май 2009
    Сообщения:
    69
    Симпатии:
    0
    Всем доброго времени суток! Необходимо написать обработку для переноса документов Реализация Т и У из УТ в УТ.
    Написал, вроде все работает, но есть проблема...
    Открываем загруженный документ. встаем на любую номенклатуру и жмем "Серийные номера".

    1.JPG

    Открывается обработка. Там показываются ВСЕ серийники, которые были в исходном документе. Но если в этой обработке Закрыть или закрыть форму обработки крестом, то при следующем открытии этой обработки все серийники из нее пропадают. Если в форме обработки нажать ОК, то все сохраняется и дальше все правильно отображается.

    2.JPG

    Подскажите, в чем может быть проблема??
     
  2. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Смторите, что происходит при записи документа.
     
  3. Спартак

    Спартак Well-Known Member

    Регистрация:
    2 май 2009
    Сообщения:
    69
    Симпатии:
    0
    как ни странно, но документ записывается B)
    Код (Text):
    док = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
    док.Дата = ТекущаяДата ();
    док.Организация = Справочники.Организации.НайтиПоКоду("000000001");
    док.Склад = СкладРеализация;
    док.ОтражатьВУправленческомУчете = Истина;
    Для Каждого стр Из ТабТовары Цикл
    Если (стр.ВидДок = "2") И (стр.НомерДок = НомерДок) Тогда
    СтрДок = док.Товары.Добавить();
    СтрДок.Номенклатура = Справочники.Номенклатура.НайтиПоКоду(стр.Номенклатура);
    СтрДок.СерияНоменклатуры = Справочники.СерииНоменклатуры.НайтиПоКоду(стр.Серия);
    СтрДок.Количество = Число (стр.Количество);
    СтрДок.Цена = Число (стр.Цена);
    СтрДок.Сумма = СтрДок.Количество * СтрДок.Цена;
    СтрДок.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
    СтрДок.Коэффициент = 1;
    СтрДок.ЕдиницаИзмерения = СтрДок.Номенклатура.ЕдиницаХраненияОстатков;
    КонецЕсли;
    КонецЦикла;
    Для Каждого стр Из ТабСерийники Цикл
    Если (стр.ВидДок = "2") И (стр.НомерДок = НомерДок) Тогда
    СтрСер = док.СерийныеНомера.Добавить();
    СтрСер.СерийныйНомер = Справочники.СерийныеНомера.НайтиПоКоду(стр.Серийник);
    СтрСер.КлючСвязи = стр.Ключ;
    КонецЕсли;
    КонецЦикла;
    док.Контрагент = ЗаписатьКонтрагента (НомерДок);
    док.Записать();
     
  4. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Еще не понятно, зачем вы это пишите, если есть универсальная обработка?
     
  5. Спартак

    Спартак Well-Known Member

    Регистрация:
    2 май 2009
    Сообщения:
    69
    Симпатии:
    0
    потому что это всего лишь маленький кусок того переноса, что надо сделать. плюс не каждый документ переносится в документ такого же типа плюс все это должно делаться по расписанию :) тут очень много зхаморочек
     
  6. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    Смотрите, как отбирает обработка серийники, и что она делает при закрытии - найдете, что забыли.
     
  7. Спартак

    Спартак Well-Known Member

    Регистрация:
    2 май 2009
    Сообщения:
    69
    Симпатии:
    0
    решил проблему.
    Код (Text):
    СтрДок.КлючСвязи = СтрДок.НомерСтроки;
    СтрДок.КлючСтроки= СтрДок.НомерСтроки;
     
Загрузка...

Поделиться этой страницей