Имя: Пароль:
1C
1С v8
Выгружаются все объекты ПКО
0 zippygrill
 
24.05.16
21:22
Всем привет!
Намучился уже с выгрузкой с-ф выданных и решил просить вашего совета.
Значит есть ПВД, в событие ПередВыгрузкой, ставил вот такой код для отладки

Отказ = Объект.Организация <> Параметры.Организация ИЛИ Объект.Ссылка <> Параметры.ВыгружаемыйОбъект;

Тем не менее мой отбор просто напросто не срабатывает при выгрузки и выгружаются абсолютно все все объекты. В параметрах обработки конечно указываю и Организацию и ВыгружаемыйОбоъект.
Аналогичный код есть и в других ПВД, например в ПВД выгрузки с-ф полученные - там все ок.
1 zippygrill
 
24.05.16
21:25
после Отказ = Объект.Организация <> Параметры.Организация ИЛИ Объект.Ссылка <> Параметры.ВыгружаемыйОбъект; есть такой код. Может в этом и дело? Хотя по мне приоритет выгрузки у переменной Отказ.

Если ЗначениеЗаполнено(Объект.ДокументОснование)
    И ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
2 Shrek_yar
 
24.05.16
21:25
(0)покажи как счет фактуры выгружаешь
3 zippygrill
 
24.05.16
21:26
ну вот полный код в ПВД ПередВыгрузкой

Отказ = Объект.Организация <> Параметры.Организация ИЛИ Объект.Ссылка <> Параметры.ВыгружаемыйОбъект;

Если ЗначениеЗаполнено(Объект.ДокументОснование)
    И ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда
    
    ИсходящиеДанные = Новый Структура();
    ИсходящиеДанные.Вставить("ДатаИсходногоДокумента");
    ИсходящиеДанные.Вставить("НомерИсходногоДокумента");
    ИсходящиеДанные.Вставить("ДатаИсправляемогоКорректировочногоДокумента");
    ИсходящиеДанные.Вставить("НомерИсправляемогоКорректировочногоДокумента");
    ИсходящиеДанные.Вставить("ДокументОснование");
    ИсходящиеДанные.Вставить("ИмяПКО");
    
    Запрос = Новый Запрос("ВЫБРАТЬ
    |    МАКСИМУМ(ВЫБОР
    |            КОГДА РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)
    |                ТОГДА ИСТИНА
    |            ИНАЧЕ ЛОЖЬ
    |        КОНЕЦ) КАК ЕстьТовары,
    |    МАКСИМУМ(ВЫБОР
    |            КОГДА РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
    |                    ИЛИ РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа)
    |                ТОГДА ИСТИНА
    |            ИНАЧЕ ЛОЖЬ
    |        КОНЕЦ) КАК ЕстьУслуги,
    |    РеализацияТоваровУслугТовары.Ссылка КАК СсылкаНаДокументОснование
    |ПОМЕСТИТЬ ПараметрыДокументаРеализацияТоваровУслуг
    |ИЗ
    |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |ГДЕ
    |    РеализацияТоваровУслугТовары.Ссылка = &ДокРеализации
    |    И РеализацияТоваровУслугТовары.Ссылка.ХозяйственнаяОперация = ЗНАЧЕНИЕ(Перечисление.ХозяйственныеОперации.ОтгрузкаБезПереходаПраваСобственности)
    |
    |СГРУППИРОВАТЬ ПО
    |    РеализацияТоваровУслугТовары.Ссылка
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    СчетФактурыВыданный.ДокументОснование,
    |    МИНИМУМ(СчетФактурыВыданный.НомерИсправления) КАК НомерИсправления
    |ПОМЕСТИТЬ МинимальныйНомерИсправления
    |ИЗ
    |    Документ.СчетФактураВыданный КАК СчетФактурыВыданный
    |ГДЕ
    |    СчетФактурыВыданный.ДокументОснование = &ДокРеализации
    |
    |СГРУППИРОВАТЬ ПО
    |    СчетФактурыВыданный.ДокументОснование
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    СчетФактураВыданный.Организация КАК Организация,
    |    СчетФактураВыданный.ДокументОснование КАК ДокументОснование,
    |    ТИПЗНАЧЕНИЯ(СчетФактураВыданный.ДокументОснование) КАК ТипЗначенияДокументаОснования,
    |    СчетФактураВыданный.Исправление КАК Исправление,
    |    СчетФактураВыданный.НомерИсправления,
    |    МинимальныйНомерИсправления.НомерИсправления КАК МинимальныйНомерИсправленияДокументаОснования,
    |    ВЫБОР
    |        КОГДА СчетФактураВыданный.Корректировочный
    |            ТОГДА СчетФактураВыданный.ДатаИсправленияИсходногоДокумента
    |        ИНАЧЕ """"
    |    КОНЕЦ КАК ДатаИсправленияИсходногоДокумента,
    |    ВЫБОР
    |        КОГДА СчетФактураВыданный.Корректировочный
    |            ТОГДА СчетФактураВыданный.НомерИсправленияИсходногоДокумента
    |        ИНАЧЕ """"
    |    КОНЕЦ КАК НомерИсправленияИсходногоДокумента,
    |    ВЫБОР
    |        КОГДА СчетФактураВыданный.НомерИсправленияИсходногоДокумента ЕСТЬ NULL
    |            ТОГДА ЛОЖЬ
    |        ИНАЧЕ ИСТИНА
    |    КОНЕЦ КАК УчитыватьИсправлениеИсходногоДокумента,
    |    ВЫБОР
    |        КОГДА СчетФактураВыданный.Корректировочный
    |            ТОГДА СчетФактураВыданный.НомерИсходногоДокумента
    |        КОГДА СчетФактураВыданный.Исправление
    |            ТОГДА СчетФактураВыданный.СчетФактураОснование.Номер
    |        ИНАЧЕ """"
    |    КОНЕЦ КАК НомерИсходногоДокумента,
    |    ВЫБОР
    |        КОГДА СчетФактураВыданный.Корректировочный
    |            ТОГДА СчетФактураВыданный.ДатаИсходногоДокумента
    |        КОГДА СчетФактураВыданный.Исправление
    |            ТОГДА СчетФактураВыданный.СчетФактураОснование.Дата
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК ДатаИсходногоДокумента,
    |    ВЫБОР
    |        КОГДА СчетФактураВыданный.Корректировочный
    |                И СчетФактураВыданный.Исправление
    |            ТОГДА СчетФактураВыданный.СчетФактураОснование.Номер
    |        ИНАЧЕ """"
    |    КОНЕЦ КАК НомерИсправляемогоКорректировочногоДокумента,
    |    ВЫБОР
    |        КОГДА СчетФактураВыданный.Корректировочный
    |                И СчетФактураВыданный.Исправление
    |            ТОГДА СчетФактураВыданный.СчетФактураОснование.Дата
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК ДатаИсправляемогоКорректировочногоДокумента
    |ПОМЕСТИТЬ ПараметрыСчетФактуры
    |ИЗ
    |    Документ.СчетФактураВыданный КАК СчетФактураВыданный
    |        ЛЕВОЕ СОЕДИНЕНИЕ МинимальныйНомерИсправления КАК МинимальныйНомерИсправления
    |        ПО СчетФактураВыданный.ДокументОснование = МинимальныйНомерИсправления.ДокументОснование
    |ГДЕ
    |    СчетФактураВыданный.Ссылка = &СчетФактура
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ПараметрыСчетФактуры.Организация КАК Организация,
    |    ПараметрыСчетФактуры.ДокументОснование КАК ДокументОснование,
    |    ПараметрыСчетФактуры.ТипЗначенияДокументаОснования КАК ТипЗначенияДокументаОснования,
    |    ПараметрыСчетФактуры.Исправление КАК Исправление,
    |    ПараметрыСчетФактуры.НомерИсправления КАК НомерИсправления,
    |    ЕСТЬNULL(ПараметрыСчетФактуры.МинимальныйНомерИсправленияДокументаОснования, 0) КАК МинимальныйНомерИсправления,
    |    ПараметрыСчетФактуры.ДатаИсправленияИсходногоДокумента КАК ДатаИсправленияИсходногоДокумента,
    |    ПараметрыСчетФактуры.НомерИсправленияИсходногоДокумента КАК НомерИсправленияИсходногоДокумента,
    |    ПараметрыСчетФактуры.УчитыватьИсправлениеИсходногоДокумента КАК УчитыватьИсправлениеИсходногоДокумента,
    |    ПараметрыСчетФактуры.НомерИсходногоДокумента КАК НомерИсходногоДокумента,
    |    ПараметрыСчетФактуры.ДатаИсходногоДокумента КАК ДатаИсходногоДокумента,
    |    ПараметрыСчетФактуры.НомерИсправляемогоКорректировочногоДокумента КАК НомерИсправляемогоКорректировочногоДокумента,
    |    ПараметрыСчетФактуры.ДатаИсправляемогоКорректировочногоДокумента КАК ДатаИсправляемогоКорректировочногоДокумента,
    |    ВЫБОР
    |        КОГДА ПараметрыДокументаОснования.ЕстьТовары ЕСТЬ NULL
    |            ТОГДА ИСТИНА
    |        ИНАЧЕ ПараметрыДокументаОснования.ЕстьТовары
    |    КОНЕЦ КАК ЭтоТовары,
    |    ЛОЖЬ КАК ЭтоУслуги
    |ПОМЕСТИТЬ ДанныеСчетФактуры
    |ИЗ
    |    ПараметрыСчетФактуры КАК ПараметрыСчетФактуры
    |        ЛЕВОЕ СОЕДИНЕНИЕ ПараметрыДокументаРеализацияТоваровУслуг КАК ПараметрыДокументаОснования
    |        ПО ПараметрыСчетФактуры.ДокументОснование = ПараметрыДокументаОснования.СсылкаНаДокументОснование
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    ПараметрыСчетФактуры.Организация,
    |    ПараметрыСчетФактуры.ДокументОснование,
    |    ПараметрыСчетФактуры.ТипЗначенияДокументаОснования,
    |    ПараметрыСчетФактуры.Исправление,
    |    ПараметрыСчетФактуры.НомерИсправления,
    |    ЕСТЬNULL(ПараметрыСчетФактуры.МинимальныйНомерИсправленияДокументаОснования, 0),
    |    ПараметрыСчетФактуры.ДатаИсправленияИсходногоДокумента,
    |    ПараметрыСчетФактуры.НомерИсправленияИсходногоДокумента,
    |    ПараметрыСчетФактуры.УчитыватьИсправлениеИсходногоДокумента,
    |    ПараметрыСчетФактуры.НомерИсходногоДокумента,
    |    ПараметрыСчетФактуры.ДатаИсходногоДокумента,
    |    ПараметрыСчетФактуры.НомерИсправляемогоКорректировочногоДокумента,
    |    ПараметрыСчетФактуры.ДатаИсправляемогоКорректировочногоДокумента,
    |    ЛОЖЬ,
    |    ВЫБОР
    |        КОГДА ПараметрыДокументаОснования.ЕстьУслуги ЕСТЬ NULL
    |            ТОГДА ЛОЖЬ
    |        ИНАЧЕ ПараметрыДокументаОснования.ЕстьУслуги
    |    КОНЕЦ
    |ИЗ
    |    ПараметрыСчетФактуры КАК ПараметрыСчетФактуры
    |        ЛЕВОЕ СОЕДИНЕНИЕ ПараметрыДокументаРеализацияТоваровУслуг КАК ПараметрыДокументаОснования
    |        ПО ПараметрыСчетФактуры.ДокументОснование = ПараметрыДокументаОснования.СсылкаНаДокументОснование
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ДанныеСчетФактуры.ДатаИсправленияИсходногоДокумента,
    |    ДанныеСчетФактуры.НомерИсправленияИсходногоДокумента,
    |    ДанныеСчетФактуры.УчитыватьИсправлениеИсходногоДокумента,
    |    ДанныеСчетФактуры.НомерИсходногоДокумента,
    |    ДанныеСчетФактуры.ДатаИсходногоДокумента,
    |    ДанныеСчетФактуры.НомерИсправляемогоКорректировочногоДокумента,
    |    ДанныеСчетФактуры.ДатаИсправляемогоКорректировочногоДокумента,
    |    ДанныеСчетФактуры.НомерИсправления,
    |    ДанныеСчетФактуры.ДокументОснование,
    |    ВЫБОР
    |        КОГДА ДанныеСчетФактуры.Исправление
    |                И ДанныеСчетФактуры.ТипЗначенияДокументаОснования <> ТИП(Документ.КорректировкаРеализации)
    |            ТОГДА ""СФВ_КорректировкаРеализации""
    |        КОГДА ДанныеСчетФактуры.ТипЗначенияДокументаОснования = ТИП(Документ.РеализацияТоваровУслуг)
    |            ТОГДА ВЫБОР
    |                    КОГДА ДанныеСчетФактуры.ЭтоТовары
    |                        ТОГДА ""РеализацияТоваровУслуг""
    |                    КОГДА ДанныеСчетФактуры.ЭтоУслуги
    |                        ТОГДА ""РТУ_РеализацияУслугБезПереходаПраваСобственности""
    |                    ИНАЧЕ """"
    |                КОНЕЦ
    |        КОГДА ДанныеСчетФактуры.ТипЗначенияДокументаОснования = ТИП(Документ.ПередачаТоваровМеждуОрганизациями)
    |            ТОГДА ""ПДТ_ПередачаТоваровПродажа""
    |        КОГДА ДанныеСчетФактуры.ТипЗначенияДокументаОснования = ТИП(Документ.ВозвратТоваровМеждуОрганизациями)
    |            ТОГДА ""ВТМО_ВозвратПоставщику""
    |        КОГДА ДанныеСчетФактуры.ТипЗначенияДокументаОснования = ТИП(Документ.ОтчетПоКомиссииМеждуОрганизациями)
    |            ТОГДА ВЫБОР
    |                    КОГДА ДанныеСчетФактуры.Организация = ОтчетПоКомиссииМеждуОрганизациями.Организация
    |                        ТОГДА ""ОКОПМО_ОтчетКомиссионераОПродажах""
    |                    ИНАЧЕ ""ОКТОПМО_ОтчетКомитентуОПродажах""
    |                КОНЕЦ
    |        КОГДА ДанныеСчетФактуры.ТипЗначенияДокументаОснования = ТИП(Документ.КорректировкаРеализации)
    |            ТОГДА ВЫБОР
    |                    КОГДА ДанныеСчетФактуры.Исправление
    |                            И ДанныеСчетФактуры.НомерИсправления > ДанныеСчетФактуры.МинимальныйНомерИсправления
    |                        ТОГДА ""СФВ_КорректировкаРеализации""
    |                    ИНАЧЕ ""КорректировкаРеализации""
    |                КОНЕЦ
    |        ИНАЧЕ """"
    |    КОНЕЦ КАК ИмяПКО
    |ИЗ
    |    ДанныеСчетФактуры КАК ДанныеСчетФактуры
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетПоКомиссииМеждуОрганизациями КАК ОтчетПоКомиссииМеждуОрганизациями
    |        ПО ДанныеСчетФактуры.ДокументОснование = ОтчетПоКомиссииМеждуОрганизациями.Ссылка
    |ГДЕ
    |    (ДанныеСчетФактуры.ЭтоТовары
    |            ИЛИ ДанныеСчетФактуры.ЭтоУслуги)");
    
    Запрос.УстановитьПараметр("СчетФактура",   Объект);
    Запрос.УстановитьПараметр("ДокРеализации", Объект.ДокументОснование);
    РезультатЗапроса = Запрос.Выполнить().Выгрузить();
    
    Если РезультатЗапроса.Количество() > 0 Тогда
        ЗаполнитьЗначенияСвойств(ИсходящиеДанные, РезультатЗапроса[0]);
        ИсходящиеДанные.Вставить("ДокументыОснования", РезультатЗапроса);
        ВыгрузитьПоПравилу(Объект,,ИсходящиеДанные, , "СФВ_СчетФактураВыданный");
    КонецЕсли;
КонецЕсли;
4 Shrek_yar
 
24.05.16
21:28
(4)вау, Это что за конвертация , от куда куда?
5 Shrek_yar
 
24.05.16
21:29
(0) Значит в пареметрах срабатывает как истина.
Что в параметры пишешь смотри
6 Shrek_yar
 
24.05.16
21:29
(0) модет тут

Объект.Организация <> Параметры.Организация
7 zippygrill
 
24.05.16
21:32
(6) Однозначно нет. Отладчиком смотрел
8 zippygrill
 
24.05.16
21:33
думаю что дело в ВыгрузитьПоПравилу. Она всегда срабатвает.
9 Defender aka LINN
 
24.05.16
21:42
Выгружаются объекты, на которые есть ссылки
10 zippygrill
 
24.05.16
21:45
И что это значит?
11 Shrek_yar
 
24.05.16
21:48
(10) Сделай условие Если Отказ Тогда
12 Defender aka LINN
 
24.05.16
21:58
(10) Ну, я вроде все буквы русские использовал... Какая именно непонятна?
13 sergeyspb13
 
24.05.16
22:33
Установлено?
Объект Выборки:  пусто
Способ выборки: Произвольный алгоритм
14 zippygrill
 
24.05.16
22:36
Дело было в И ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.РеализацияТоваровУслуг") Тогда и ВыгрузитьПоПравилу.
Теперь ВыгрузитьПоПРавилу применяю только для документовОснования - КорректировкаРеализации.
15 zippygrill
 
24.05.16
22:37
В общем вот так заработало.

Отказ = Объект.Организация <> Параметры.Организация ИЛИ Объект.Ссылка <> Параметры.ВыгружаемыйОбъект;


ИсходящиеДанные = Новый Структура();
ИсходящиеДанные.Вставить("ДатаИсходногоДокумента");
ИсходящиеДанные.Вставить("НомерИсходногоДокумента");
ИсходящиеДанные.Вставить("ДатаИсправляемогоКорректировочногоДокумента");
ИсходящиеДанные.Вставить("НомерИсправляемогоКорректировочногоДокумента");
ИсходящиеДанные.Вставить("ДокументОснование", Объект.ДокументОснование);
ИсходящиеДанные.Вставить("ДокументыОснования");
ИсходящиеДанные.Вставить("ИмяПКО", ?(ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.КорректировкаРеализации"), "СФВ_КорректировкаРеализации", ""));
ДокументыОснования = Новый ТаблицаЗначений;
ДокументыОснования.Колонки.Добавить("ДокументОснование");
ДокументыОснования.Колонки.Добавить("ИмяПКО");
ДокументыОснования.Колонки.Добавить("ДатаИсправленияИсходногоДокумента");
ДокументыОснования.Колонки.Добавить("ДатаИсходногоДокумента");
ДокументыОснования.Колонки.Добавить("НомерИсправленияИсходногоДокумента");
ДокументыОснования.Колонки.Добавить("НомерИсходногоДокумента");
ДокументыОснования.Колонки.Добавить("УчитыватьИсправлениеИсходногоДокумента");



//ИсходныйДокумент
Если Объект.Корректировочный Тогда
    ИсходящиеДанные.ДатаИсходногоДокумента = Объект.ДатаИсходногоДокумента;
КонецЕсли;
Если Объект.Исправление Тогда
    ИсходящиеДанные.ДатаИсходногоДокумента = Объект.СчетФактураОснование.Дата;
КонецЕсли;

Если Объект.Корректировочный Тогда
    ИсходящиеДанные.НомерИсходногоДокумента = Объект.НомерИсходногоДокумента;
КонецЕсли;
Если Объект.Исправление Тогда
    ИсходящиеДанные.НомерИсходногоДокумента = Объект.СчетФактураОснование.Номер;
КонецЕсли;

//ИсправляемыйКД
Если Объект.Корректировочный
    И Объект.Исправление тогда
    ИсходящиеДанные.ДатаИсправляемогоКорректировочногоДокумента = Объект.СчетФактураОснование.Дата;
КонецЕсли;
Если Объект.Корректировочный
    И Объект.Исправление тогда
    ИсходящиеДанные.НомерИсправляемогоКорректировочногоДокумента = Объект.СчетФактураОснование.Номер;
КонецЕсли;

УчитыватьИсправлениеИсходногоДокумента = ЗначениеЗаполнено(Объект.НомерИсправленияИсходногоДокумента);
НоваяСтрока = ДокументыОснования.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ИсходящиеДанные);
НоваяСтрока.УчитыватьИсправлениеИсходногоДокумента = УчитыватьИсправлениеИсходногоДокумента;

ИсходящиеДанные.ДокументыОснования = ДокументыОснования;
Если ЗначениеЗаполнено(ИсходящиеДанные.ДокументОснование) Тогда
    
    Если Объект.ДокументОснование = Тип("ДокументСсылка.КорректировкаРеализации") Тогда
        ВыгрузитьПоПравилу(Объект,, , ИсходящиеДанные, "СФВ_КорректировкаРеализации");
    КонецЕсли;
    
Иначе
    Отказ = Истина;
КонецЕсли;