|
Конвертация табличной части документа | ☑ | ||
---|---|---|---|---|
0
DanJer74
15.06.16
✎
16:24
|
Приветствую!
Впал в жесткий тупняк - не могу сообразить вот какой момент. Надо выгрузить документ Поступление. ТАм есть реквизит "Контрагент" - он строковый. Мне нужно в табличной части оставить только Контрагентов вот по такому условию (это я написал в событие "Перед выгрузкой" в правиле обмена): Для каждого Строка Из Объект.Товары Цикл Если Найти(Строка.Контрагент,"CHMZ") <> 0 Тогда /////////////// ЧТО_ТО НАДО НАПИСАТЬ ////////////// ОБъект.Товары.Удалить(Строка); КонецЕсли; Конеццикла; Так не удаляет - ошибка "Недоступен для изменения" Подскажите пожалуйста, что туда прописать нужно, чтобы остались только нужные мне строки из ТЧ |
|||
1
Зая Бусечка
15.06.16
✎
16:25
|
В правиле конвертации группы свойств. И Отказ.
|
|||
2
DanJer74
15.06.16
✎
16:26
|
Если Найти(Строка.Контрагент,"CHMZ") <> 0 Тогда
Отказ = ИСТИНА; КонецЕсли; Конеццикла; Вот в таком ключе? |
|||
3
DanJer74
15.06.16
✎
16:38
|
Для каждого Строка Из Товары Цикл
Если Найти(Строка.Контрагент,"CHMZ") = 0 Тогда Отказ = Истина; КонецЕсли; Конеццикла; Пишу вот такое в ПКГС Товары - ошибка вываливается в событии "ПриВЫгрузке" |
|||
4
Худой
16.06.16
✎
05:08
|
А что говорит если сделать "ПолучитьОбъект()"?
По моему, без этого оператора никаких изменений делать не получится. Как пример Если Пользователь <> Неопределено Тогда ПользовательОбъект = Пользователь.ПолучитьОбъект(); Если ПользовательОбъект <> Неопределено Тогда ПользовательОбъект.Удалить(); КонецЕсли; КонецЕсли; |
|||
5
Mankubus
16.06.16
✎
05:59
|
в ПКГС нужно написать КоллекцияОбъектов = Объект.Товары
И в этой коллекции удалить строки, которые не нужно переносить |
|||
6
DanJer74
16.06.16
✎
08:08
|
Все, сделал. В событии ПКГС "Товары" написал следующее
Если ОбъектКоллекции.Контрагент<>"CHMZ" Тогда Отказ = ИСТИНА; Конецесли; Всем спасибо за помощь :) |
|||
7
DanJer74
16.06.16
✎
08:08
|
Событие "Перед выгрузкой"
|
|||
8
DanJer74
17.06.16
✎
08:07
|
Хотелось бы еще вот что чпросить. Как мне у документа после загрузки в другую базу задать склад и организацию?
|
|||
9
DanJer74
17.06.16
✎
08:09
|
Есть вариант прокатиться после обработкой
|
|||
10
Mankubus
17.06.16
✎
08:30
|
(8) в событии после загрузки и пиши.
Объект.Склад = мойсклад |
|||
11
DanJer74
17.06.16
✎
10:12
|
А можно как-нибудь через конвертацию сделать поступление из реализации?
|
|||
12
mistеr
17.06.16
✎
11:42
|
(11) Можно, делай.
|
|||
13
DanJer74
17.06.16
✎
13:32
|
Да я серьезно спрашиваю - такое реально сделать?
|
|||
14
mistеr
17.06.16
✎
14:16
|
(13) И я серьезно. Можно любой объект сделать из любого, даже просто из ничего.
|
|||
15
GANR
17.06.16
✎
14:29
|
(13) Делаешь правило конвертации. Объект-источник ставишь реализацию, а приемник - поступление. Ну и свойства прописывай. Можно вообще создать поступление из произвольной структуры.
|
|||
16
DanJer74
17.06.16
✎
23:25
|
(15) Капец. Вот я долбоящер. Что же я не догадался то....столько времени потерял, не посмотрел толком ничего. Спасибо тебе огромное, добрый человек. Все сделал за пару часов. :)
|
|||
17
DanJer74
21.06.16
✎
12:49
|
Хотелось бы еще вот что узнать. Не могу сообразить, как выгрузить контрагентов по части наименования?
|
|||
18
Mankubus
21.06.16
✎
12:56
|
(17) поясни подробнее
|
|||
19
DanJer74
21.06.16
✎
12:58
|
(18) У меня есть куча контрагентов, у которых в наименовании есть "CHMZ". Вот мне нужно выгрузить только их.
|
|||
20
Mankubus
21.06.16
✎
13:04
|
(19) В ПВД перед выгрузкой пишешь
Если Найти(Объект.Наименование,"CHMZ") = 0 Тогда Отказ = Истина; |
|||
21
DanJer74
21.06.16
✎
13:20
|
Ошибка при выгрузке данных: {Обработка.УниверсальныйОбменДаннымиXML(1612)}: Ошибка в обработчике события ПередОбработкойПравилаВыгрузки
ПВД = Контрагенты Обработчик = ПередОбработкойВыгрузкиДанных ОписаниеОшибки = Значение не является значением объектного типа (Наименование) ПозицияМодуля = (1) КодСообщения = 31 Вот такую ошибку выдает |
|||
22
DanJer74
21.06.16
✎
13:21
|
А, не грузит
|
|||
23
DanJer74
21.06.16
✎
13:21
|
Накосячил
|
|||
24
DanJer74
21.06.16
✎
13:55
|
А можно это ускорить - запросом, например дернуть?
|
|||
25
Mankubus
21.06.16
✎
13:57
|
(24) разрешаю
|
|||
26
bodri
21.06.16
✎
13:57
|
"CHMZ" в начале наименования или в любой части?
|
|||
27
DanJer74
21.06.16
✎
14:06
|
(26) В начале
|
|||
28
bodri
21.06.16
✎
14:13
|
В (0) сказано, что Контрагент - это текстовое поле документа, а в (19), что надо выгрузить контрагентов. Есть справочник контрагентов или вы хотите текстовые поля выгрузить? Если текстовые поля выгрузить, тогда скорей всего в ПВД перед выгрузкой писать:
Если Найти(Объект.Контрагент,"CHMZ") = 0 Тогда Отказ = Истина; |
|||
29
bodri
21.06.16
✎
14:14
|
(28) или
Если Лев(Объект.Наименование,4) = "CHMZ" Тогда Отказ = Истина; |
|||
30
DanJer74
21.06.16
✎
14:15
|
(28) Мне надо притащить из справочника Контрагенты
|
|||
31
bodri
21.06.16
✎
14:15
|
(29) поправка Лев(Объект.Наименование,4) = Лев(Объект.Контрагент,4)
|
|||
32
DanJer74
21.06.16
✎
14:15
|
(28) Я такое писал, но тормоза дичайшие
|
|||
33
bodri
21.06.16
✎
14:16
|
(30) тогда попробуйте (29)
|
|||
34
Mankubus
21.06.16
✎
14:35
|
В ПВД выбери способ выборки - Произвольный алгоритм и напиши свой запрос.
Выгружай с помощью процедуры ВыгрузитьПоПравилу |
|||
35
DanJer74
21.06.16
✎
16:10
|
ОК
|
|||
36
GANR
21.06.16
✎
17:39
|
(35) Ты в курсе, что ты можешь отлаживать обработчики КД? http://its.1c.ru/db/metod8dev/content/2942/hdoc
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |