Конвертация данных 2.0 отбор

1. olgita_n 08.07.19 13:43 Сейчас в теме
Добрый день!
Я выполняю обмен через конвертацию данных между Бухгалтерией 8.2 и БИТ.ФИНАНС 8.3.
Подскажите пожалуйста как в ПКО прописать отбор по полю?
Мне нужно выгрузить Договора с определенным типом.
Данный момент прописываю отбор руками.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
41. olgita_n 09.07.19 10:23 Сейчас в теме
Сработало условие = Справочники.А_ТипыДоговоров.НайтиПоКоду("---")
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. lefthander 08.07.19 13:55 Сейчас в теме
(1)Вы хотите это же прописать в правилах? А смысл?
Хотя впрочем Для каждого ПКС в данном ПКО прописываете значения в обработчик ПриВыгрузке. Если не выполняется условие выгрузке выгрузке даете Отказ = Истина. Посмотрите как это сделано в демо, и описание обработчика изучите ;)
3. olgita_n 08.07.19 13:56 Сейчас в теме
(2)ПриВыгрузки прописывала, условия почему то не отрабатывалось.
4. lefthander 08.07.19 13:58 Сейчас в теме
(3)Сорри перед выгрузкой
7. olgita_n 08.07.19 14:29 Сейчас в теме
8. lefthander 08.07.19 14:32 Сейчас в теме
(7)Код то покажите? или попробуем угадать? ;)
9. olgita_n 08.07.19 14:38 Сейчас в теме
(8)
Прикрепленные файлы:
11. alalsl 12 08.07.19 14:43 Сейчас в теме
(9) Это ПКС, надо ПКО Справочника)
13. olgita_n 08.07.19 15:08 Сейчас в теме
(11) Все равно не срабатывает. должно выгрузиться 114 объектов, а выгружает 9535
Прикрепленные файлы:
14. alalsl 12 08.07.19 15:12 Сейчас в теме
(13) Вы точно уверены в правильности условия?
У вас там написано ОтказА=Истина;
должен быть Отказ=Истина;
Удалите букву "а"
lefthander; +1 Ответить
15. lefthander 08.07.19 15:13 Сейчас в теме
(13)а второй реквизит бывает чем нибудь занят? или всегда = "". Какой у него тип значения?
16. olgita_n 08.07.19 15:23 Сейчас в теме
(15) у второго ссылочный тип
17. lefthander 08.07.19 15:28 Сейчас в теме
(16)может тогда не "", а ТпиЗначения.ПустаяСсылка()?
18. alalsl 12 08.07.19 15:36 Сейчас в теме
(17) Тогда точно так)
или на ЗначениеЗаполнено() проверить
olgita_n; +1 Ответить
19. olgita_n 08.07.19 15:55 Сейчас в теме
(18) второй реквизит все правильно выгружает, а вот с первым так и не работает(
20. alalsl 12 08.07.19 15:57 Сейчас в теме
(19) Немного не понятно(
По первому условию не выгружает?
А код там точно из трёх символов?
21. olgita_n 08.07.19 16:05 Сейчас в теме
(20) Да по первому условию не выгружает
Код точно из 3х и это тоже ссылочный тип получается
Прикрепленные файлы:
23. lefthander 08.07.19 16:09 Сейчас в теме
(21)а число или строка? сам код? если число приведите его к строке. Потому как по условиям у вас должна быть строка
24. olgita_n 08.07.19 16:13 Сейчас в теме
25. lefthander 08.07.19 16:16 Сейчас в теме
(24)в принципе, попробуйте в любой внешней обработке на кнопку повесить эти условия и посмотрите при переборе справочника что будет в результате. Так как что в Конвертации, что в самом коде язык один и работать будет и там и там.
26. alalsl 12 08.07.19 16:16 Сейчас в теме
(24)В нём общее число символов какое?
Попробуйте СокрЛП(ссылка.Код)<>"018"
Скорей всего у вас 018 в Справочнике с пробелами
28. olgita_n 08.07.19 16:19 Сейчас в теме
22. olgita_n 08.07.19 16:08 Сейчас в теме
(20) условие с идентификатором работает, а вот условие с типом не работает
Прикрепленные файлы:
27. alalsl 12 08.07.19 16:18 Сейчас в теме
(22)Можете скопировать код из справочника? И сюда прислать?
Или скопируйте его и вставьте в неравенство
29. olgita_n 08.07.19 16:24 Сейчас в теме
30. alalsl 12 08.07.19 16:29 Сейчас в теме
(29)
Точно код не число?
Попробуйте привести оба значения, либо к числу, либо к строке.
СокрЛП(ссылка.Код)<>"018"
Так не сработало?
40. olgita_n 09.07.19 09:34 Сейчас в теме
(30)нет, не сработало
Прикрепленные файлы:
42. alalsl 12 09.07.19 10:27 Сейчас в теме
(40)Источник.А_ТипыДоговоров
а не Источник.А_ТипДоговора
36. lefthander 08.07.19 16:41 Сейчас в теме
(29)А точно код? в справочнике ЕРП договоры код вообще не используется а только наименование.
ЗЫ правда в бухгалтерии у договоров код 9 знаков и тип строка. ;)
5. alalsl 12 08.07.19 14:23 Сейчас в теме
(1) Лучше в ПВД условия прописать, лучше в запросе.
Правда отборы не будут работать в таком случае)
6. lefthander 08.07.19 14:25 Сейчас в теме
(5)А чем лучше? Ну, в том плане, принципиально чем лучше? ;)
10. alalsl 12 08.07.19 14:41 Сейчас в теме
(6) Не будет происходить запроса ко всему справочнику.
Принципиально, в данном случае, ничем), должно быть быстрее
Удобнее в ПКО.
12. Xershi 1535 08.07.19 14:44 Сейчас в теме
(1) сначала идет ПВД, затем ПКО, а ПКС для заполнения значения, а не объекта.
31. wau8824ru 24 08.07.19 16:30 Сейчас в теме
	ОсновнаяОрганизация = Константы.РеглОрганизацияEpartner.Получить();
	СписокДокументов = Новый СписокЗначений;
	Для Каждого СтрокаУровня1 Из ТаблицаПравилВыгрузки.Строки Цикл
		Наименование = 	СтрокаУровня1.Имя;
		//Сообщить("СтрокаУровня1 "+Наименование);// Для отладки
		// Документы
		Если Наименование = "Документы" Тогда
			Для Каждого СтрокаУровня2 Из ТаблицаПравилВыгрузки.Строки[0].Строки Цикл
				Попытка
					Наименование = 	СтрокаУровня2.Имя;
					Если Наименование = "ЗаказПокупателяСчетНаОплатуПокупателю" Тогда
						Наименование = СтрЗаменить(Наименование, "СчетНаОплатуПокупателю", "");
					КонецЕсли;
					//Сообщить("СтрокаУровня2 "+Наименование);// Для отладки
					Построитель = Новый ПостроительОтчета;
					Если СтрокаУровня2.ИмяОбъектаДляЗапроса <> Неопределено Тогда
						Построитель.Текст =
						"ВЫБРАТЬ Разрешенные _.* ИЗ " + СтрокаУровня2.ИмяОбъектаДляЗапроса + " КАК _
						|{ГДЕ _.Ссылка.* КАК " + СтрЗаменить(СтрокаУровня2.ИмяОбъектаДляЗапроса, ".", "_") + "}";
					КонецЕсли;
					Отбор = Построитель.Отбор;
					ДокументНаименование = "Документ_"+Наименование;
					ДокументНаименованиеОрганизация = ДокументНаименование+".Организация";
					Если Отбор.Найти(ДокументНаименование) = Неопределено Тогда
						Отбор.Добавить(ДокументНаименованиеОрганизация, "ОсновнаяОрганизация");
						Отбор.Добавить(ДокументНаименование);
					КонецЕсли;
					Отбор["ОсновнаяОрганизация"].Использование	= Истина;
					Отбор["ОсновнаяОрганизация"].ВидСравнения	= ВидСравнения.Равно;
					Отбор["ОсновнаяОрганизация"].Значение		= ОсновнаяОрганизация;
					Отбор[ДокументНаименование].Использование	= Истина;
					Отбор[ДокументНаименование].ВидСравнения	= ВидСравнения.ВСписке;
					Отбор[ДокументНаименование].Значение		= СписокДокументов;
					ДоступностьПостроителя = Истина;
					Если Построитель.Отбор.Количество() > 0 Тогда
						СтрокаУровня2.НастройкиПостроителя = Построитель.ПолучитьНастройки();
						СтрокаУровня2.ИспользоватьОтбор    = Истина;
					КонецЕсли;
				Исключение
					Сообщить(СтрокаУровня2.Имя+" не удалось установить отбор");
				КонецПопытки;
			КонецЦикла;
		// Банк
		ИначеЕсли Наименование = "Банк" Тогда
			Для Каждого СтрокаУровня2 Из ТаблицаПравилВыгрузки.Строки[1].Строки Цикл
				Попытка
					Наименование = 	СтрокаУровня2.Имя;
					//Сообщить("СтрокаУровня2 "+Наименование);// Для отладки
					Построитель = Новый ПостроительОтчета;
					Если СтрокаУровня2.ИмяОбъектаДляЗапроса <> Неопределено Тогда
						Построитель.Текст =
						"ВЫБРАТЬ Разрешенные _.* ИЗ " + СтрокаУровня2.ИмяОбъектаДляЗапроса + " КАК _
						|{ГДЕ _.Ссылка.* КАК " + СтрЗаменить(СтрокаУровня2.ИмяОбъектаДляЗапроса, ".", "_") + "}";
					КонецЕсли;
					Отбор = Построитель.Отбор;
					ДокументНаименование = "Документ_"+Наименование;
					ДокументНаименованиеОрганизация = ДокументНаименование+".Организация";
					Если Отбор.Найти(ДокументНаименование) = Неопределено Тогда
						Отбор.Добавить(ДокументНаименованиеОрганизация, "ОсновнаяОрганизация");
					КонецЕсли;
					Отбор["ОсновнаяОрганизация"].Использование	= Истина;
					Отбор["ОсновнаяОрганизация"].ВидСравнения	= ВидСравнения.Равно;
					Отбор["ОсновнаяОрганизация"].Значение		= ОсновнаяОрганизация;
					ДоступностьПостроителя = Истина;
					Если Построитель.Отбор.Количество() > 0 Тогда
						СтрокаУровня2.НастройкиПостроителя = Построитель.ПолучитьНастройки();
						СтрокаУровня2.ИспользоватьОтбор    = Истина;
					КонецЕсли;
				Исключение
					Сообщить(СтрокаУровня2.Имя+" не удалось");
				КонецПопытки;
			КонецЦикла;
		КонецЕсли;
	КонецЦикла;
Показать

В данном примере отбор устанавливается в форме Универсального обмена данных, в процедуре ПриОткрытии(), в конце. по организации, и по самому объекту. для объектов в иерархии "Банк" только по организации.
Прикрепленные файлы:
32. alalsl 12 08.07.19 16:33 Сейчас в теме
(31) Так конечно красивее)
Только если кто-нибудь не удалит отбор или не отключит
33. wau8824ru 24 08.07.19 16:36 Сейчас в теме
(32)
Только если кто-нибудь не удалит отбор или не отключит

Там же:
	ЭлементыФормы.КоманднаяПанельПостроительОтбор.Доступность = РольДоступна("ПолныеПрава");
	ЭлементыФормы.ПостроительОтбор.Доступность = РольДоступна("ПолныеПрава");
34. alalsl 12 08.07.19 16:37 Сейчас в теме
35. lefthander 08.07.19 16:38 Сейчас в теме
(33)Топикстартер использует КД 2.0. Чем ему поможет Ваш код?
37. wau8824ru 24 08.07.19 16:43 Сейчас в теме
(35)
Проще сделать через Универсальный обмен данными.
38. wau8824ru 24 08.07.19 16:46 Сейчас в теме
(35)
Чем ему поможет Ваш код?

это то что Топикстартер хочет сделать, но не понимает как подступится...
39. lefthander 08.07.19 17:03 Сейчас в теме
41. olgita_n 09.07.19 10:23 Сейчас в теме
Сработало условие = Справочники.А_ТипыДоговоров.НайтиПоКоду("---")
43. alalsl 12 09.07.19 11:14 Сейчас в теме
(41)
Источник.А_ТипыДоговоров
а не Источник.А_ТипДоговора
44. olgita_n 09.07.19 15:05 Сейчас в теме
(43) А_ТипыДоговоров так сам справочник называется, а поле в справочнике Договоров называется А_ТипДоговора
45. alalsl 12 09.07.19 15:53 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот