Имя: Пароль:
1C
1С v8
Правила обмена данных
,
0 KonstantinK90
 
17.12.14
07:15
Помогите с проблемкой!
Создал правило обмена данных на КД. Выгружаю документ с торговли в УПП отчет о розничных продаж.Все нормально выгружаеться сделал провило вроде все работает вот только мне нужно добавить условие что бы при выгрузке документа отчет о розничной продаже в табличной части выгружалась только определенный вид номеклатуры к примеру "товар".
1 KonstantinK90
 
17.12.14
07:17
Прочел методичку алгоритмы и запросы ивсе сделал как там описано ,но при выгрузке ни какой ошибке не происходит и номенклатуру всю выгружает
2 KonstantinK90
 
17.12.14
07:19
вот запрос-  ВЫБРАТЬ
    Номенклатура.Ссылка
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
     Номенклатура.ВидНоменклатуры = &Товар
И в обработчике событий при выгрузке пишу -Запросы.ОтборПоНоменклатуре.УстановитьПараметр("Товар",Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар"));
РезультатЗапроса = Запросы.ОтборПоНоменклатуре.Выполнить().Выбрать();
но ни чего не происходит все равно всю номенклатуру выгружает
3 Godofsin
 
17.12.14
07:48
Значение = ;
4 Godofsin
 
17.12.14
07:48
В пкс номенклатуры.
5 Godofsin
 
17.12.14
07:49
а, не в курил сразу. Тебе надо чтоб отдельные строки документа вышружались?
6 Godofsin
 
17.12.14
07:50
в (2) хня какая-то...
7 azt-yur
 
17.12.14
07:51
Ставь условия в обработчике ПередВыгрузкой правила выгрузки группы свойств твой табличной части. Что то типа:
Если ОбъектКоллекции.Номенклатура.ВидНоменклатуры <> Перечисления.ВидыНоменклатуры.Товар Тогда
Отказ = Истина;
КонецЕсли;
8 Godofsin
 
17.12.14
07:51
+(5) Или надо чтоб товар свернулся в одну строчку с общей суммой?
9 KonstantinK90
 
17.12.14
07:52
мне нужно что бы в табличной части выгружалась номенклатура с видом номенклатура "товар"
10 Godofsin
 
17.12.14
07:53
(9) тогда (7)
11 KonstantinK90
 
17.12.14
08:02
что то не понял что нужно сделать
12 KonstantinK90
 
17.12.14
08:03
ОбъектКоллекции ругается говорит не обнаруженно
13 azt-yur
 
17.12.14
08:20
(12) куда код пишешь? открой свойства самой группы табличной части через F2. и пиши (7) в обработчик ПередВыгрузкой
14 KonstantinK90
 
17.12.14
10:37
пишу как вы сказали все равно пишет что Ошибка в обработчике события ПередВыгрузкой (объекта коллекции)
15 vicof
 
17.12.14
10:42
(14) Объект коллекции доступен только в табличной части. Так что это нужно писать в ПКС Перед выгрузкой.
16 Alex S D
 
17.12.14
10:43
(15) в ПКГС
17 vicof
 
17.12.14
10:45
(16) В ПКГС доступна КоллекцияОбъектов
18 Alex S D
 
17.12.14
10:47
(17) читай справку
19 KonstantinK90
 
17.12.14
10:50
и так пишу в табличной части "товары" перед выгрузкой Если ОбъектКоллекции.Номенклатура.ВидНоменклатуры <> Перечисления.ВидыНоменклатуры.Товар Тогда
Отказ = Истина;
КонецЕсли;
и выпадает ошибка Ошибка в обработчике события ПередВыгрузкой (объекта коллекции)
20 Alex S D
 
17.12.14
10:50
полностью ошибку
21 azt-yur
 
17.12.14
10:50
(15) В ПКС не установишь отказ на выгрузку объекта коллекции, а можно это сделать ПКГС в обработчике ПередВыгрузкой, в нем ОбъектКоллекции доступен
22 Alex S D
 
17.12.14
10:51
что значит в табличной части товары? в ПКС номенклатуры чтоли?
23 azt-yur
 
17.12.14
10:53
(19) ВидНоменклатуры - это не перечисление, а справочник. это я сразу напамять неправильно так в (7) написал.
24 azt-yur
 
17.12.14
10:54
Если ОбъектКоллекции.Номенклатура.ВидНоменклатуры.Наименование <> "Товар" Тогда
Отказ = Истина;
КонецЕсли;
25 Alex S D
 
17.12.14
10:55
(24) отличный авно код))
26 vicof
 
17.12.14
10:56
(21) Не надо лечить

Обработчики "Правила конвертации свойств"
Перед выгрузкой
Условия возникновения события
Событие выполняется перед выгрузкой значения свойства. Возможен отказ от выгрузки. УзелСвойства еще не создан, конвертируемое значение Неопределено.

Параметры:
Источник - Произвольный. Ссылка на выгружаемый объект источник данных

Приемник - xml-узел формируемого объекта приемника

ВходящиеДанные - Произвольный. Произвольные вспомогательные данные, переданные правилу конвертации из других правил (например из правила выгрузки данных или правила конвертации свойств). Значение параметра, как правило, имеет тип Структура, где ключи значений соответствуют структуре свойств объекта приемника. Таким образом, при конвертации свойств (в ПКС), конвертируемые данные (или часть данных) могут быть получены из этого параметра.

ИсходящиеДанные - Произвольный. Произвольные вспомогательные данные, передаваемые правилам конвертации объектов свойств (ПКО).

ПКС - ссылка на правило конвертации свойств

ПКО - ссылка на правило конвертации объектов - родитель данного правила конвертации свойств

ОбъектКоллекции - ссылка на выгружаемый объект коллекции. Например, строка табличной части или запись регистра или строка таблицы значений или строка результата запроса и т.д.

Отказ - Булево - Если Истина, то конвертация свойства не производится, обработка данного правила конвертации свойств прекращается

Значение - Неопределено. Конвертируемое значение свойства. Если значение определить в теле обработчика, то стандартная процедура получения значения не будет происходить.

ТипПриемника - Строка. Тип свойства приемника. Для свойств не составных типов - всегда определен. Для свойств составных типов - определяется либо правилом конвертации, либо разработчиком конвертации

ИмяПКО - имя правила конвертации, по которому производится преобразование значения свойства. Может быть выбрано в зависимости от каких-либо условий.

ИмяПКОВидСубконто - имя правила конвертации, по которому производится преобразование вида субконто (только для свойств СубконтоДт и СубконтоКт записей регистра бухгалтерии). Может быть выбрано в зависимости от каких-либо условий.

Пусто - Булево - Ложь. Если установить Истина, то в приемник будет записано пустое значение свойства, соответствующего типа и дальнейшая обработка правила конвертации свойств будет прекращена

Выражение - Неопределено. Может быть указано произвольное строковое выражение на встроенном языке, результат вычисления которого при загрузке будет присвоен значению свойства. Если Выражение определить в теле обработчика, то дальнейшая обработка ПКС будет прекращена. Данная возможность, используется только если конфигурация-приемник реализована на платформе V8

НеЗамещать - Булево - по умолчанию определяется в настройках правила, но может быть изменено в теле обработчика. Если установить значение Истина, то для существующих объектов информационной базы установка свойства производиться не будет.

УзелКоллекцииСвойств - xml-узел коллекции свойств

ВыгрузитьОбъект - Булево - Если Истина, то объект выгружается целиком. Если Ложь, то выгружается только ссылка.

Пример:
Если (ПустаяСтрока(Источник.НомерДокумента) = 0) И (ПустаяСтрока(Источник.Комментарий) = 0) Тогда
Значение = "Номер документа: " + Источник.НомерДокумента + РазделительСтрок + "Комментарий: " + Источник.Комментарий;

ИначеЕсли (ПустаяСтрока(Источник.НомерДокумента) = 0) Тогда
Значение = "Номер документа: " + Источник.НомерДокумента;

ИначеЕсли (ПустаяСтрока(Источник.Комментарий) = 0) Тогда
Значение = "Комментарий: " + Источник.Комментарий;
Иначе
Отказ = 1;

КонецЕсли;
27 azt-yur
 
17.12.14
10:56
(25) согласен )))
28 Alex S D
 
17.12.14
10:59
(26) ты хочешь сказать, что в ПКС элемента таб. части можно отказаться от выгрузки строки?
29 vicof
 
17.12.14
11:03
(28) Не, если строку, тогда в ПКГС, есть свойство - в ПКС
30 Alex S D
 
17.12.14
11:03
(29) ну дык, в условии как раз строку не нужно
31 vicof
 
17.12.14
11:05
(30) Ну ок, тогда я не против :))
32 KonstantinK90
 
17.12.14
11:09
О все спасибо большое все получилось! Просто я сегодня 2 день конвертацией занимаюсь. не хватало помощи вашей!!!
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший