8.х ОБМЕН Конвертация данных, обмен Альфа-Авто с УТ 10.3

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем PavelBaryshev, 21 июн 2013.

  1. TopicStarter Overlay
    PavelBaryshev
    Offline

    PavelBaryshev Опытный в 1С

    Регистрация:
    9 сен 2008
    Сообщения:
    316
    Симпатии:
    0
    Баллы:
    26
    Добрый день. Помогите решить задачку, пишу правила по выгрузки из УТ в Альфа-авто, Проблема возникла при выгрузке документа Реализация товаров и услуг, дело в том что у меня в ТЧ Товары строки разбиваются по складам и получается что номенклатура повторяется, и мне нужно как то ее свернуть что ли. Чтоб документ попадал в Альфа-авто без повторов в ТЧ. Вот как это сделать, в каком обработчике что прописать?

    Вложения:

  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    При выгрузке... (2 раза ЛКМ, обработчик событий "при выгрузке")

    Из источника заполняй ТЗ и сворачивай...
  3. Гриша
    Offline

    Гриша Опытный в 1С

    Регистрация:
    4 май 2008
    Сообщения:
    286
    Симпатии:
    5
    Баллы:
    29
    В общем решение такое

    1 Первое что нужно сделать чтобы в документ реализация прилетала одинаковая номенклатура

    Например для объекта номенклатура в обработчике "ПередВыгрузкой" написать что то типо

    Код:
    Если Источник.СтавкаНДС = Перечисления.СтавкиНДС.НДС10 Тогда
    //Тогда выгружаем товар с ндс 10
    Источник = Справочники.Номенклатура.НайтиПоКоду("УТ000000003");
    ИначеЕсли Источник.СтавкаНДС = Перечисления.СтавкиНДС.НДС18 Тогда
    //Тогда выгружаем товар с ндс 18
    Источник = Справочники.Номенклатура.НайтиПоКоду("УТ000000004");
    
    
    Иначе
    Отказ = Истина;
    КонецЕсли;
    2 Нужно в документе реализация в обработчике "ПослеЗагрузки" прописать

    Код:
    ТекТовары = Объект.Товары.Выгрузить();
    КолонкиСвертки = "Номенклатура";
    КолонкиСуммирования = "";
    МассивТипов = Новый Массив;
    ТипЧисло = Тип("Число");
    МассивТипов.Добавить(ТипЧисло);
    ОТ = Новый ОписаниеТипов(МассивТипов);
    //Нужно сгенирировать колонки свертки и колонки суммирования
    Для Каждого ТекКолонка Из ТекТовары.Колонки Цикл
    
    
    
    Если ТекКолонка.ТипЗначения.СодержитТип(ТипЧисло)Тогда
    //Тогда это колонка суммирования
    Если КолонкиСуммирования = "" Тогда
    КолонкиСуммирования = КолонкиСуммирования +  ТекКолонка.Имя;
    Иначе
    КолонкиСуммирования = КолонкиСуммирования + "," + ТекКолонка.Имя;
    КонецЕсли
    Иначе
    
    КонецЕсли;
    
    КонецЦикла;
    
    ТекТовары.Свернуть(КолонкиСвертки,КолонкиСуммирования);
    
    Объект.Товары.Очистить();
    Объект.Товары.Загрузить(ТекТовары);
    
    //Также надо пересчитать цену
    Для Каждого ТекСтрокаТовар из Объект.Товары Цикл
    
    Если ТекСтрокаТовар.Количество <> 0 Тогда
    ТекСтрокаТовар.Цена = ТекСтрокаТовар.Сумма/ТекСтрокаТовар.Количество;
    КонецЕсли;
    ТекСтрокаТовар.СтавкаНДС = ТекСтрокаТовар.Номенклатура.СтавкаНДС;
    КонецЦикла;
    
    Соответственно мы свернули табличную часть товары, пересчитали цены (цена стала усредненной) !!
  4. TopicStarter Overlay
    PavelBaryshev
    Offline

    PavelBaryshev Опытный в 1С

    Регистрация:
    9 сен 2008
    Сообщения:
    316
    Симпатии:
    0
    Баллы:
    26
    Добрый день. Подскажите как решить такую проблему, написал правила по выгрузке с УТ 10.3 в АльфаАвто, в правилах документ перемещение товаров добавлен дважды, в первом случае он грузиться в альфу как перемещение товаров в производство если склад получатель равен складу в альфе, а во втором как документ возврата товаров поставщику если склад отправитель равен складу в альфе. Проблема в том что как перемещение товаров в производство он попадает а как возврат нет. Как сделать?

    Вложения:

  5. TopicStarter Overlay
    PavelBaryshev
    Offline

    PavelBaryshev Опытный в 1С

    Регистрация:
    9 сен 2008
    Сообщения:
    316
    Симпатии:
    0
    Баллы:
    26
    Спасибо всем, сам решил!!!
    Код:
    Если СокрЛП(Объект.СкладПолучатель.Код) = "БП0000004"  И Объект.Подразделение = Справочники.Подразделения.НайтиПоКоду("УТ0000003") Тогда
    ИмяПКО = "ПоступлениеТоваров";
    ИначеЕсли СокрЛП(Объект.СкладГруппа.Код) = "БП0000004" Тогда
    ИмяПКО = "ВозвратПоставщику";
    Иначе
    Отказ = Истина;
    КонецЕсли;

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