Кто знает как сделать? Борюсь уже 3-ий день.

1. user973528 12.10.18 17:30 Сейчас в теме
Написал правила конвертации для УТ - БП. Выгружаю документы реализации с помощью обработки "Выгрузка данных XML".
Но при выгрузке почему то Номенклатура которая является услугой сохраняется в табличной части "Товары", как это исправить? Подскажите пожалуйста.
Прикрепленные файлы:
Найденные решения
38. bmk74 233 19.10.18 14:19 Сейчас в теме
(37)
| И РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)";


И РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)";
Это зачем вы поставили ?
Уберите там не должно быть кавычек и точки с запятой
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
5. bmk74 233 12.10.18 17:45 Сейчас в теме
(1)
ыгружаю документы реализации с помощью обработки "Выгрузка данных XML"

А вообще такие вещи выбираются запросом, в "при выгрузке объекта" помещаются в ТЗ и в структуру ИсходящиеДанные
в правилах ставится на эти таб части получить из входящих данных галочка.
2. bmk74 233 12.10.18 17:39 Сейчас в теме
В УТ она в какой табличной части ?
3. user973528 12.10.18 17:42 Сейчас в теме
(2) Товары, даже услуги в Товарах
4. user973528 12.10.18 17:43 Сейчас в теме
(2) Может так попробовать в "После загрузки" реализации

А = 1;
Для Каждого Стр Из Объект.Товары Цикл

Если Стр.Номенклатура.ВидНоменклатуры.Услуга = Истина Тогда

Для Каждого Стр1 Из Объект.Услуги Цикл

Стр.Номенклатура = Стр1.Номенклатура;

КонецЦикла;
КонецЕсли;
А = А+1;
КонецЦикла;
6. bmk74 233 12.10.18 17:46 Сейчас в теме
(4) повторюсь
А вообще такие вещи выбираются запросом, в "при выгрузке объекта" помещаются в ТЗ и в структуру ИсходящиеДанные
в правилах ставится на эти таб части получить из входящих данных галочка.
7. user973528 12.10.18 17:46 Сейчас в теме
(6) А есть пример запроса? Запрос из реализации делать?
10. bmk74 233 12.10.18 17:57 Сейчас в теме
(7)Да в правиле ПКО Реализации Перед выгрузкой, вам надо просто сделать из одной таблицы 2, Товары и услуги, ну соответственно
У вас в Структуре ИсходящиеДанные будут ключи Товары и Услуги с соответствующими табличными частями...)
В ПКС на данные таб части поставить галку получить из входящих данных, внутри них убрать источник
Если найду пример то выложу
8. user973528 12.10.18 17:49 Сейчас в теме
(6) В типовых правилах УТ - БП 2.0 нашёл это

Запросы.ТоварыИзВидовЗапасовДляРеализацииТУПродажа.УстановитьПараметр("Ссылка", Источник.Ссылка);
РезультатыЗапроса = Запросы.ТоварыИзВидовЗапасовДляРеализацииТУПродажа.ВыполнитьПакет();

ТабЧастьТовары   = РезультатыЗапроса[4].Выгрузить();
СуммаТоваров     = ТабЧастьТовары.Итог("Сумма");
ТабЧастьТара     = РезультатыЗапроса[5].Выгрузить();
СуммаТары        = ТабЧастьТара.Итог("Сумма");
ТабЧастьУслуги   = РезультатыЗапроса[2].Выгрузить();
СуммаУслуг       = ТабЧастьУслуги.Итог("Сумма");
ТабЧастьАгУслуги = РезультатыЗапроса[6].Выгрузить();
СуммаАгУслуг     = ТабЧастьАгУслуги.Итог("Сумма");

СуммаНДСТоваров = 0;
СуммаНДСУслуг   = 0;
СуммаНДСАгУслуг = 0;

Если Не Источник.ЦенаВключаетНДС Тогда
	СуммаНДСТоваров = ТабЧастьТовары.Итог("СуммаНДС");
	СуммаНДСУслуг   = ТабЧастьУслуги.Итог("СуммаНДС");
	СуммаНДСАгУслуг = ТабЧастьАгУслуги.Итог("СуммаНДС");
КонецЕсли;

ВходящиеДанные.Вставить("Товары",          ТабЧастьТовары);
ВходящиеДанные.Вставить("ВозвратнаяТара",  ТабЧастьТара);
ВходящиеДанные.Вставить("Услуги",          Новый ТаблицаЗначений());
ВходящиеДанные.Вставить("АгентскиеУслуги", Новый ТаблицаЗначений());

Если Источник.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияБезПереходаПраваСобственности Тогда
	Отказ = ТабЧастьТара.Количество() = 0 И ТабЧастьТовары.Количество() = 0;
	ВходящиеДанные.Вставить("ВидОперации", "ОтгрузкаБезПереходаПраваСобственности");
	ВходящиеДанные.Вставить("СуммаДокумента", СуммаТоваров + СуммаНДСТоваров + СуммаТары);
Иначе
	ВходящиеДанные.Вставить("Услуги",          ТабЧастьУслуги);
	ВходящиеДанные.Вставить("АгентскиеУслуги", ТабЧастьАгУслуги);
	ВходящиеДанные.Вставить("СуммаДокумента",  СуммаТоваров + СуммаНДСТоваров + СуммаТары + СуммаУслуг + СуммаНДСУслуг + СуммаАгУслуг + СуммаНДСАгУслуг);
	ВходящиеДанные.Вставить("ВидОперации", "ПродажаКомиссия");
КонецЕсли;
Показать
12. bmk74 233 12.10.18 17:58 Сейчас в теме
(8)
оварыИзВидовЗапасовДляРеализацииТУПродажа.Устано


Да именно про это я и говорил, действуйте аналогично
9. herfis 498 12.10.18 17:56 Сейчас в теме
(4) Почти. Только не в "После загрузки", а в "Перед выгрузкой" ПКГС "Товары":
Если ОбъектКоллекции.Номенклатура.ВидНоменклатуры.Услуга Тогда
     Отказ = Истина;
КонецЕсли;

Для загрузки услуг в ТЧ "Услуги" можно прописать зеркальную фигню, чтобы товары исключались.
ЗЫ. Для оптимизации выгрузки (чтобы по каждой номенклатуре в БД не лезло) можно в "Перед обработкой" заменить "КоллекциюОбъектов" с родной ТЧ источника на результат запроса, который получит ТЧ и признак услуги за один запрос к БД.
11. bmk74 233 12.10.18 17:58 Сейчас в теме
14. herfis 498 12.10.18 17:59 Сейчас в теме
(11) Может я неправильно понял задачу?
Нужно ТЧ источника "Товары" разделить на "Товары" и "Услуги" в приемнике? Или другое?
13. bmk74 233 12.10.18 17:59 Сейчас в теме
(9) Этим вы только исключите номенклатуру из ТЧ, а в Услуги вы ее как потом добавлять будете
15. herfis 498 12.10.18 18:00 Сейчас в теме
(13) Так а в услугах аналогично - источник "Товары" из источника, только фильтруем товары, оставляя только услуги при выгрузке.
16. user973528 12.10.18 18:01 Сейчас в теме
(15)
Да,то и нужно сделать, раскидать по товарам и услугам
17. bmk74 233 12.10.18 18:02 Сейчас в теме
(15)Круто, такого я обычно не видел :), как вариант конечно можно...но все таки через получение из входящих данных как то правильней...мне кажется
18. user973528 12.10.18 18:06 Сейчас в теме
(15) А где найти это ПКГС табличной части Товары?
19. bmk74 233 12.10.18 18:08 Сейчас в теме
(18)
Правой кнопкой на ТЧ и Изменить
20. bmk74 233 12.10.18 18:08 Сейчас в теме
(19)
Только вам еще сопоставить надо будет ТЧ товары и ТЧ услуги в данном случае
22. user973528 12.10.18 18:12 Сейчас в теме
(20) Товары сопоставлены, но вот услуги никак не сопоставить потому что табличной части «Услуги» в УТ нет
23. bmk74 233 12.10.18 18:17 Сейчас в теме
(22)Скиньте ваши правила, мне быстрее в них будет все написать чем обьяснять :)
24. user973528 12.10.18 18:24 Сейчас в теме
21. bmk74 233 12.10.18 18:10 Сейчас в теме
(9)
который получит ТЧ и признак услуги за один запрос к БД.

Для оптимизации как раз перед выгрузкой и создаются две таблицы, помещаются во входящие данные, а на самих правилах по этим ТЧ ставиться получать из входящих данных
25. user973528 12.10.18 19:06 Сейчас в теме
(21)

Вот я вам закинул
Прикрепленные файлы:
ПравилаОбмена(Правка).xml
29. bmk74 233 15.10.18 12:26 Сейчас в теме
(25)Держите, возможно запрос придется подправить, так как я не уверен что услуги у вас в базе так определяются
Прикрепленные файлы:
ПравилаОбмена(С Услугами).xml
30. user973528 15.10.18 14:04 Сейчас в теме
(29)
ите, возможно запрос придется подправить, так как я не уверен что услуги у вас в базе так определяются


Хорошо спасибо большое, сегодня попробую, напишу как результат
31. user973528 19.10.18 09:53 Сейчас в теме
(29) Валится на ошибке "Поле не найдено, Док.Номенклатура.ВидНоменклатуры.Услуга"
32. user973528 19.10.18 10:17 Сейчас в теме
(29)
"ВЫБРАТЬ
|	РеализацияТоваровУслугТовары.Номенклатура,
|	РеализацияТоваровУслугТовары.Количество,
|	РеализацияТоваровУслугТовары.Цена,
|	РеализацияТоваровУслугТовары.Сумма,
|	РеализацияТоваровУслугТовары.СуммаНДС
|ИЗ
|	Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
|ГДЕ
|	РеализацияТоваровУслугТовары.Ссылка = &Ссылка";
Показать


Ругается на "| И НЕ Док.Номенклатура.ВидНоменклатуры.Услуга"
Как можно сделать?
33. user973528 19.10.18 11:46 Сейчас в теме
(29) Может как то через наименование сделать?
34. bmk74 233 19.10.18 13:32 Сейчас в теме
(33)Я же вам написал, что запрос возможно подправить придется, у вас как делится номенклатура на услуги и товары ?
35. bmk74 233 19.10.18 13:54 Сейчас в теме
(33)Если УТ последние то там можно через типНоменклатуры
ГДЕ Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)
36. user973528 19.10.18 14:09 Сейчас в теме
(35)
(33)Если УТ последние то там можно через типНоменклатуры


Сейчас попробую
37. user973528 19.10.18 14:13 Сейчас в теме
(35)
Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML1.МодульОбъекта(3086)}: Ошибка в обработчике события ПередВыгрузкойОбъекта
ПКО = РеализацияТоваровУслуг (Документ: Реализация товаров и услуг)
Объект = Реализация товаров и услуг м300-000253 от 31.03.2018 23:59:59 (Реализация товаров и услуг)
Обработчик = ПередВыгрузкойОбъекта
ОписаниеОшибки = Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(13,1)}: Ожидается последовательность операторов
ПозицияМодуля = Обработка.УниверсальныйОбменДаннымиXML1.МодульОбъекта(1735)
КодСообщения = 41

Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| Док.Номенклатура,
| Док.Количество,
| Док.СтавкаНДС,
| Док.Сумма,
| Док.СуммаНДС,
| Док.Цена
| ИЗ Документ.РеализацияТоваровУслуг.Товары  КАК Док
| ГДЕ Док.Ссылка = &Ссылка
| И Док.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)";
| ;
|//////////////////////////////////////////////////////
|ВЫБРАТЬ
| Док.Номенклатура,
| Док.Номенклатура.Наименование КАК Содержание,
| Док.Количество,
| Док.СтавкаНДС,
| Док.Сумма,
| Док.СуммаНДС,
| Док.Цена
| ИЗ Документ.РеализацияТоваровУслуг.Товары  КАК Док
| ГДЕ Док.Ссылка = &Ссылка
| И Док.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга)";
Запрос.УстановитьПараметр("Ссылка",Источник.Ссылка);
ВходящиеДанные = Новый Структура;
МассивВыборок = Запрос.ВыполнитьПакет();
ВходящиеДанные.Вставить("Товары",МассивВыборок[0].Выгрузить());
ВходящиеДанные.Вставить("Услуги",МассивВыборок[1].Выгрузить());
Показать
38. bmk74 233 19.10.18 14:19 Сейчас в теме
(37)
| И РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)";


И РеализацияТоваровУслугТовары.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Товар)";
Это зачем вы поставили ?
Уберите там не должно быть кавычек и точки с запятой
39. user973528 19.10.18 14:33 Сейчас в теме
(38) Спасибо большое вам, очень выручили. Все заработало, только есть одна загвоздка что в услугах в бухгалтерии уже счет доходов не заполняется, можно ли как то его заполнить?
40. bmk74 233 19.10.18 14:43 Сейчас в теме
(39)Если бухия стандартная и настроены счета то все просто
В Правиле ПослеЗагрузки вставте
Отбор = Новый Структура;
Отбор.Вставить("НеЗаполненныеРеквизиты", Истина);

СчетаУчетаВДокументах.Заполнить(Объект, Отбор);
user973528; +1 Ответить
41. user973528 19.10.18 14:46 Сейчас в теме
(40)
тбор = Новый Структура;
Отбор.Вставить("НеЗаполненныеРеквизиты", Истина);

СчетаУчетаВДокументах.Заполнить(Объект, Отбор);


Хорошо, спасибо большое))
42. user973528 19.10.18 14:47 Сейчас в теме
(40) Счет фактуры так же наверно можно будет вытащить по запросу и входящих данных?
43. bmk74 233 19.10.18 15:12 Сейчас в теме
(42)Для СФ надо правило просто отдельное написать..., там в принципе все стандарто
27. user973528 13.10.18 08:54 Сейчас в теме
(9) Нужно ли сопоставлять табличные части "Услуги" в правилах?
26. user973528 12.10.18 19:36 Сейчас в теме
Вопрос еще актуален, справиться не могу
28. Климов Сергей 15.10.18 11:12 Сейчас в теме
(26) Ещё один вариант:
1. В ПКГС группы "Товары", в обработчике "Перед обработкой" создаём ТЗ КоллекцияОбъектов со структурой, идентичной структуре ТЧ "Товары".
2. В цикле перебираем ТЧ Товары, если в строке товар - добавляем в ТЗ.
3. В ПКГС группы "Услуги", в обработчике "Перед обработкой" создаём ТЗ КоллекцияОбъектов со структурой, идентичной структуре ТЧ "Услуги".
4. В цикле перебираем ТЧ Товары, если в строке услуга - добавляем в ТЗ.
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)