|
Выгружаются все объекты ПКО | ☑ | ||
---|---|---|---|---|
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
|
В общем вот так заработало.
Отказ = Объект.Организация <> Параметры.Организация ИЛИ Объект.Ссылка <> Параметры.ВыгружаемыйОбъект; ИсходящиеДанные = Новый Структура(); ИсходящиеДанные.Вставить("ДатаИсходногоДокумента"); ИсходящиеДанные.Вставить("НомерИсходногоДокумента"); ИсходящиеДанные.Вставить("ДатаИсправляемогоКорректировочногоДокумента"); ИсходящиеДанные.Вставить("НомерИсправляемогоКорректировочногоДокумента"); ИсходящиеДанные.Вставить("ДокументОснование", Объект.ДокументОснование); ИсходящиеДанные.Вставить("ДокументыОснования"); ИсходящиеДанные.Вставить("ИмяПКО", ?(ТипЗнч(Объект.ДокументОснование) = Тип("ДокументСсылка.КорректировкаРеализации"), "СФВ_КорректировкаРеализации", "")); ДокументыОснования = Новый ТаблицаЗначений; ДокументыОснования.Колонки.Добавить("ДокументОснование"); ДокументыОснования.Колонки.Добавить("ИмяПКО"); ДокументыОснования.Колонки.Добавить("ДатаИсправленияИсходногоДокумента"); ДокументыОснования.Колонки.Добавить("ДатаИсходногоДокумента"); ДокументыОснования.Колонки.Добавить("НомерИсправленияИсходногоДокумента"); ДокументыОснования.Колонки.Добавить("НомерИсходногоДокумента"); ДокументыОснования.Колонки.Добавить("УчитыватьИсправлениеИсходногоДокумента"); //ИсходныйДокумент Если Объект.Корректировочный Тогда ИсходящиеДанные.ДатаИсходногоДокумента = Объект.ДатаИсходногоДокумента; КонецЕсли; Если Объект.Исправление Тогда ИсходящиеДанные.ДатаИсходногоДокумента = Объект.СчетФактураОснование.Дата; КонецЕсли; Если Объект.Корректировочный Тогда ИсходящиеДанные.НомерИсходногоДокумента = Объект.НомерИсходногоДокумента; КонецЕсли; Если Объект.Исправление Тогда ИсходящиеДанные.НомерИсходногоДокумента = Объект.СчетФактураОснование.Номер; КонецЕсли; //ИсправляемыйКД Если Объект.Корректировочный И Объект.Исправление тогда ИсходящиеДанные.ДатаИсправляемогоКорректировочногоДокумента = Объект.СчетФактураОснование.Дата; КонецЕсли; Если Объект.Корректировочный И Объект.Исправление тогда ИсходящиеДанные.НомерИсправляемогоКорректировочногоДокумента = Объект.СчетФактураОснование.Номер; КонецЕсли; УчитыватьИсправлениеИсходногоДокумента = ЗначениеЗаполнено(Объект.НомерИсправленияИсходногоДокумента); НоваяСтрока = ДокументыОснования.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, ИсходящиеДанные); НоваяСтрока.УчитыватьИсправлениеИсходногоДокумента = УчитыватьИсправлениеИсходногоДокумента; ИсходящиеДанные.ДокументыОснования = ДокументыОснования; Если ЗначениеЗаполнено(ИсходящиеДанные.ДокументОснование) Тогда Если Объект.ДокументОснование = Тип("ДокументСсылка.КорректировкаРеализации") Тогда ВыгрузитьПоПравилу(Объект,, , ИсходящиеДанные, "СФВ_КорректировкаРеализации"); КонецЕсли; Иначе Отказ = Истина; КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |