8.х не производится "перемещение товаров" в авансовых отчётах

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем zLeoNz, 10 авг 2009.

  1. TopicStarter Overlay
    zLeoNz
    Offline

    zLeoNz

    Регистрация:
    2 авг 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте, помогите пожалуйста. У меня возникла такая проблема, не могу произвести перемещение товаров с авансовых отчётов. При перемещении открывается пустой документ, а товары не перемещаются(
  2. TopicStarter Overlay
    zLeoNz
    Offline

    zLeoNz

    Регистрация:
    2 авг 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    // Процедура - обработчик события "ОбработкаЗаполнения".
    //
    Процедура ОбработкаЗаполнения(Основание)

    Если ТипЗнч(Основание) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда

    // Заполним реквизиты шапки по документу основанию.
    Организация = Основание.Организация;
    СкладОтправитель= Основание.Склад;

    ОтражатьВНалоговомУчете = Основание.ОтражатьВНалоговомУчете;

    Если Основание.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.Оборудование Тогда
    ВидОперации = Перечисления.ВидыОперацийПеремещениеТоваров.Оборудование;
    Иначе
    ВидОперации = Перечисления.ВидыОперацийПеремещениеТоваров.ТоварыПродукция;
    КонецЕсли;

    Если ВидОперации = Перечисления.ВидыОперацийПеремещениеТоваров.Оборудование Тогда
    ЗаполнитьПоПоступлению("Товары", "Добавить", Основание, "Оборудование");

    ИначеЕсли Основание.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомитентом Тогда
    ЗаполнитьПоПоступлению("ТоварыНаКомиссии" , "Заполнить", Основание, "Товары");

    Иначе
    ЗаполнитьПоПоступлению("Товары" , "Заполнить", Основание);

    КонецЕсли;
    ЗаполнитьПоПоступлению("ВозвратнаяТара", "Заполнить", Основание);

    КонецЕсли;

    Если ТипЗнч(Основание) = Тип("ДокументСсылка.АвансовыйОтчет") Тогда

    // Заполним реквизиты шапки по документу основанию.
    Организация = Основание.Организация;
    СкладОтправитель= Основание.Склад;

    ОтражатьВНалоговомУчете = Основание.ОтражатьВНалоговомУчете;

    Если Основание.ВидОперации = Перечисления.ВидыОперацийАвансовыйОтчет.Оборудование Тогда
    ВидОперации = Перечисления.ВидыОперацийПеремещениеТоваров.Оборудование;
    Иначе
    ВидОперации = Перечисления.ВидыОперацийПеремещениеТоваров.ТоварыПродукция;
    КонецЕсли;

    Если ВидОперации = Перечисления.ВидыОперацийПеремещениеТоваров.Оборудование Тогда
    ЗаполнитьПоПоступлению("Товары", "Добавить", Основание, "Оборудование");

    ИначеЕсли Основание.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомитентом Тогда
    ЗаполнитьПоПоступлению("ТоварыНаКомиссии" , "Заполнить", Основание, "Товары");

    Иначе
    ЗаполнитьПоПоступлению("Товары" , "Заполнить", Основание);

    КонецЕсли;
    ЗаполнитьПоПоступлению("ВозвратнаяТара", "Заполнить", Основание);

    КонецЕсли;

    КонецПроцедуры // ОбработкаЗаполнения()

    Как отредактировать этот код, чтобы перемещение товаров проводилось в Авансовых отчётах?
  3. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Код:
    //Переделано из процедуры ЗаполнитьПоПоступлению()
    Процедура ЗаполнитьПоАвансовомуОтчету(ИмяТабЧасти, Режим, Основание = Неопределено, ИмяТабЧастиИсточника = Неопределено) Экспорт
    
    Если Основание = Неопределено Тогда
    ФормаПоступления = Документы.АвансовыйОтчет.ПолучитьФормуВыбора();
    ФормаПоступления.Заголовок = "Выберите документ поступления для заполнения документа реализации";
    ФормаПоступления.РежимВыбора = Истина;
    ФормаПоступления.Отбор.Организация.Значение = Организация;
    ФормаПоступления.Отбор.Организация.Использование = Истина;
    Поступление = ФормаПоступления.ОткрытьМодально();
    Иначе
    Поступление = Основание;
    КонецЕсли;
    
    Если НЕ ЗначениеЗаполнено(Поступление) Тогда
    Возврат;
    КонецЕсли;
    
    ТабЧасть = ЭтотОбъект[ИмяТабЧасти];
    
    Если ТабЧасть.Количество() > 0 И Режим = "Заполнить" Тогда
    
    #Если Клиент Тогда
    ТекстВопроса = "Перед заполнением табличная часть будет очищена. Заполнить?";
    Ответ        = Вопрос(ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да, Метаданные().Представление());
    
    Если Ответ = КодВозвратаДиалога.Нет Тогда
    Возврат;
    КонецЕсли; 
    #КонецЕсли
    
    ТабЧасть.Очистить();
    
    КонецЕсли;
    
    ТабЧастьИсточник = ?(ИмяТабЧастиИсточника = Неопределено, ИмяТабЧасти, ИмяТабЧастиИсточника);
    
    Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("Поступление", Поступление);
    Запрос.Текст = "
    |ВЫБРАТЬ
    |	АвансовыйОтчетТовары.НомерСтроки,
    |	АвансовыйОтчетТовары.Номенклатура,
    |	АвансовыйОтчетТовары.Количество" +?(ТабЧастьИсточник = "Товары",",
    |	АвансовыйОтчетТовары.КоличествоМест,
    |	АвансовыйОтчетТовары.ЕдиницаИзмерения,
    |	АвансовыйОтчетТовары.Коэффициент", "") + "
    |ИЗ
    |	Документ.АвансовыйОтчет."+ТабЧастьИсточник + " КАК АвансовыйОтчетТовары
    |
    |ГДЕ
    |	АвансовыйОтчетТовары.Ссылка = &Поступление";
    ВыборкаТоваров = Запрос.Выполнить().Выбрать();
    
    Пока ВыборкаТоваров.Следующий() Цикл
    
    СтрокаТЧ = ТабЧасть.Добавить();
    
    СтрокаТЧ.Номенклатура        = ВыборкаТоваров.Номенклатура;
    СтрокаТЧ.Количество          = ВыборкаТоваров.Количество;
    
    ЗаполнитьСчетаУчетаВСтрокеТабЧастиРегл(СтрокаТЧ, ИмяТабЧасти, Истина, ОтражатьВНалоговомУчете);
    
    Если ТабЧастьИсточник = "Товары" Тогда
    
    СтрокаТЧ.ЕдиницаИзмерения    = ВыборкаТоваров.ЕдиницаИзмерения;
    СтрокаТЧ.Коэффициент         = ВыборкаТоваров.Коэффициент;
    СтрокаТЧ.КоличествоМест      = ВыборкаТоваров.КоличествоМест;
    
    КонецЕсли;
    
    КонецЦикла;
    
    КонецПроцедуры 
    
    Процедура ОбработкаЗаполнения(Основание)
    
    Если ТипЗнч(Основание) = Тип("ДокументСсылка.ПоступлениеТоваровУслуг") Тогда
    
    // Заполним реквизиты шапки по документу основанию.
    Организация     = Основание.Организация;
    СкладОтправитель= Основание.Склад;
    
    ОтражатьВНалоговомУчете = Основание.ОтражатьВНалоговомУчете;
    
    Если Основание.ВидОперации = Перечисления.ВидыОперацийПоступлениеТоваровУслуг.Оборудование Тогда
    ВидОперации = Перечисления.ВидыОперацийПеремещениеТоваров.Оборудование;
    Иначе
    ВидОперации = Перечисления.ВидыОперацийПеремещениеТоваров.ТоварыПродукция;
    КонецЕсли;
    
    Если ВидОперации = Перечисления.ВидыОперацийПеремещениеТоваров.Оборудование Тогда
    ЗаполнитьПоПоступлению("Товары", "Добавить", Основание, "Оборудование");
    
    ИначеЕсли Основание.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомитентом Тогда
    ЗаполнитьПоПоступлению("ТоварыНаКомиссии" , "Заполнить", Основание, "Товары");
    
    Иначе
    ЗаполнитьПоПоступлению("Товары" , "Заполнить", Основание);
    
    КонецЕсли;
    ЗаполнитьПоПоступлению("ВозвратнаяТара", "Заполнить", Основание);
    
    //Заполнить по табличной части "Товары" авансового отчета
    ИначеЕсли ТипЗнч(Основание) = Тип("ДокументСсылка.АвансовыйОтчет") Тогда
    
    // Заполним реквизиты шапки по документу основанию.
    Организация     = Основание.Организация;
    СкладОтправитель= Основание.Склад;
    
    ОтражатьВНалоговомУчете = Основание.ОтражатьВНалоговомУчете;
    
    ВидОперации = Перечисления.ВидыОперацийПеремещениеТоваров.ТоварыПродукция;
    
    ЗаполнитьПоАвансовомуОтчету("Товары" , "Заполнить", Основание);
    
    КонецЕсли;
    
    КонецПроцедуры // ОбработкаЗаполнения()
    
  4. TopicStarter Overlay
    zLeoNz
    Offline

    zLeoNz

    Регистрация:
    2 авг 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    всё нормально перемещается, но при проведении перемещения выходит ошибка, мол товар не списан.

    Вложения:

  5. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Это уже авансовый отчет надо смотреть. Видимо, он не формирует приход. Может, он не проведен?
  6. TopicStarter Overlay
    zLeoNz
    Offline

    zLeoNz

    Регистрация:
    2 авг 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Сейчас посмотрю
  7. TopicStarter Overlay
    zLeoNz
    Offline

    zLeoNz

    Регистрация:
    2 авг 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    товар проведён. Я правда пробовал на учебной версии, сейчас попробую изменить конфигурацию в 1С, та что на работе. Надеюсь всё будет нормально. P.S. Боюсь до ужаса))
  8. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    бэкап сделай
  9. TopicStarter Overlay
    zLeoNz
    Offline

    zLeoNz

    Регистрация:
    2 авг 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    А как сделать бэкап? Да, знаю... я полный лаймер в 1С))))
  10. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Выгнать всех. Далее в конфигураторе Администрирование-Выгрузить информационную базу...
  11. TopicStarter Overlay
    zLeoNz
    Offline

    zLeoNz

    Регистрация:
    2 авг 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Большое спасибо. Буду ждать пока деректор дела в 1С доделает, потом сделаю бэкап)
  12. TopicStarter Overlay
    zLeoNz
    Offline

    zLeoNz

    Регистрация:
    2 авг 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Ура!!!!! :unsure: Всё работает)) Спасибо тебе огромнейшее

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