Имя: Пароль:
1C
1С v8
как пропустить строчку в табличной части, в плане обмена
0 Vvvvv
 
06.05.14
10:25
1С: Конвертация данных, в плане обмена
Можно ли как то, в плане обмена, у документа в табличной части, пропустить строку или несколько строк табличной части.
Объясню на примере: в 1с 7.7, есть документ "Поступление товаров", в нем номенклатура может быть только с типом "товар", с типом "услуга" нельзя.
1 Wobland
 
06.05.14
10:26
можно
2 Vvvvv
 
06.05.14
10:28
а как? есть какая нибудь статья или пример
3 Starhan
 
06.05.14
10:30
Обработчики "Правила конвертации группы свойств"
Перед выгрузкой
Условия возникновения события
Событие выполняется перед выгрузкой очередного объекта коллекции, например, строки табличной части. Возможен Отказ от выгрузки объекта коллекции (строки табличной части или движения регистра). УзелОбъектаКоллекции  еще не создан. Допустимо добавление произвольных записей в УзелКоллекцииОбъектов, например, когда необходимо конвертировать одну строку табличной части в несколько.
4 Vvvvv
 
06.05.14
10:38
(3) а ты не подскажешь, есть где статья на этот пример, а то немного туманно
5 Wobland
 
06.05.14
10:40
(4) какая-то из этих кнопок
http://i.imgur.com/THZok2H.png
6 Starhan
 
06.05.14
10:41
7 Vvvvv
 
06.05.14
14:47
написал текст, что бы переносилась та номенклатура, который имеет тип "товар". В правилах конвертации группы свойств, в событии "перед выгрузкой"

Номенклатура = ОбъектКоллекции.Номенклатура;
Запр = новый Запрос;
Запр.Текст = "ВЫБРАТЬ
             |    Номенклатура.Код,
             |    Номенклатура.ВидНоменклатуры,
             |    Номенклатура.НаименованиеПолное,
             |    Номенклатура.ТипНоменклатуры
             |ИЗ
             |    Справочник.Номенклатура КАК Номенклатура
             |ГДЕ
             |    Номенклатура.ТипНоменклатуры = &ТипНоменклатуры";
Запр.УстановитьПараметр("ТипНоменклатуры", Перечисления.ТипыНоменклатуры.Товар);
Выборка = Запр.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
    Если Выборка.НаименованиеПолное = Строка(Номенклатура) тогда
            Отказ = Ложь;
        Иначе
            Отказ = Истина;
        КонецЕсли;

КонецЦикла;


http://www.image123.net/68glznqrfvunpic.html
8 Vvvvv
 
06.05.14
14:48
(7) + в итоге, в тех документах, в которых был товар с типом "услуга", в них табличная часть пустая
9 Wobland
 
06.05.14
14:49
молодец. теперь распечатай это, сожги и никогда так не делай
10 Wobland
 
06.05.14
14:52
Отказ=Номенклатура.Тип=Услуга
11 Vvvvv
 
06.05.14
15:02
(10) прости, не понял эту строчку? Отказ - это же тип булево
12 Wobland
 
06.05.14
15:03
(11) ага
13 Vvvvv
 
06.05.14
15:05
(12)
Отказ=Номенклатура.Тип=Услуга
это прямо так и писать в коде, или что ты имеешь ввиду?
14 Wobland
 
06.05.14
15:07
(13) страшно?
Отказ=?(Отказ, Отказ, Номенклатура.Тип=Услуга)
так оно вроде верней будет
15 Fedor-1971
 
06.05.14
15:10
(13) отказ=?(Номенклатура.Тип=Услуга,Истина,Ложь)
Номенклатура.Тип=Услуга - это не каскадное присваивание как в С, а операция сравнения с булевым результатом
Так понятнее?
16 НЕА123
 
06.05.14
15:11
(14)+
не пятница, но все же
Отказ=Отказ+(Номенклатура.Тип=Услуга)
17 Starhan
 
06.05.14
15:12
(7) :) Я же тебе стрелкой на отказ показал, Это не значит что в условии обязательно должен быть запрос

Если ОбъектКоллекции.Номенклатура.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга Тогда
Отказ = Истина;
КонецЕсли;
18 Wobland
 
06.05.14
15:13
(16) а оно его будет в булево преобразовывать после сложения?
19 НЕА123
 
06.05.14
15:14
(16)
эээ
правильнее
Отказ=0+Отказ+(Номенклатура.Тип=Услуга)
20 Starhan
 
06.05.14
15:14
(18) само когда проверять отказ будет.
21 НЕА123
 
06.05.14
15:16
(18)
должно, вроде.
ЗЫ
проверю.
22 Starhan
 
06.05.14
15:17
23 Fedor-1971
 
06.05.14
15:18
(16) (20) даже интересно стало, каким будет результат Ложь+Истина=?
24 Starhan
 
06.05.14
15:18
(21) да там и не надо. Везде пишешь отказ =1 и работает.
25 Starhan
 
06.05.14
15:18
(23) какой то ты ен тру 1сник см (22)
26 НЕА123
 
06.05.14
15:20
(8)
да. ноль ложь иначе истина.
27 Fedor-1971
 
06.05.14
15:23
(25) видел, но там в результате значение не булево, а число.
28 Starhan
 
06.05.14
15:28
емае только щас вчитался в (7).

Те рано КД заниматься :)
29 Starhan
 
06.05.14
15:31
(27) а так? :) http://prntscr.com/3gp4y8
30 Vvvvv
 
06.05.14
15:36
Спасибо вам всем за помощь
2 + 2 = 3.9999999999999999999999999999999...