|
Доступ к справочнику из документа при конвертации | ☑ | ||
---|---|---|---|---|
0
ant19
17.03.14
✎
13:57
|
Подскажите, как справиться с такой проблемой. Переношу документы из 1С ПУБ 7.7 в 1С БП 8.3 через конвертацию данных.
Переносятся документы РеализацияТоваровУслуг и ПоступлениеТоваровУслуг. В этих документах есть ссылка на ДоговорКонтрагента. В каждом договоре соответственно есть поле (перечисление) ВидДоговора. Так вот его нужно заполнить соответственно либо как "СПокупателем", либо как "СПоставщиком", в зависимости от того, какой документ - Реализация или Поступление. И я никак не могу понять, как получить доступ к этому полю. Если бы нужно было жестко заполнить "СПокупателем", я бы написал в ПКС "Вид договора": Значение="СПоставщиком"; а как мне определить, из какого документа подтянулся этот справочник? |
|||
1
vicof
17.03.14
✎
13:59
|
По метаданным можно, я уж не помню, как это в 7.7 было.
И функция Вид(), по-моему была |
|||
2
Господин ПЖ
17.03.14
✎
13:59
|
накуа это делать из документа... в документе должен быть уже выбран адекватный виду операции договор
|
|||
3
ДенисЧ
17.03.14
✎
14:00
|
надо сделать так, как предлагает 1с...
Т.е. добавиь реквизит, заполнить его, а уже потом перегружать... Ещё вариант - сделать 2 правила и при выгрузке документа использовать ВыгрузитьПоПравилу() А потом подумать, что делать, если реализация и поступление прошли по одному договору. И с прочими договоарми что делать... |
|||
4
КРТЩ
17.03.14
✎
14:04
|
Думаю, что надо читать ТипЗнч() создаваемого объекта, если это РТУ, то в договор записать "СПокупателем", если ПТУ то "СПоставщиком"
|
|||
5
ant19
17.03.14
✎
15:58
|
(2) так я создаю документы на основе документов из 7.7, а в договорах из 7.7 нет такого поля как ВидДоговора
(3) А как это сделать, можно подробнее? С двумя правилами, например? (4) Вот за этот совет спасибо, он пока единственный, который я понял своим simple mind, сейчас попробую :) |
|||
6
Defender aka LINN
17.03.14
✎
16:03
|
(3) Это где 1С такое предлагает? О_о
(0) В договоре делаешь ПКС для вида договора без источника, с флагом "Получить из входящих данных". В ПКС договора в документе:
|
|||
7
Defender aka LINN
17.03.14
✎
16:04
|
(6) С порядком параметров у "Установить" мог и попутать, 7.7 забыл давно и прочно.
|
|||
8
ant19
17.03.14
✎
16:10
|
(6) тогда получается, все документы будут содержать ссылки на договоры "СПокупателем", а мне нужно для документа ПоступлениеТоваровУслуг, чтобы было "СПоставщиком".
короче, с ТипЗнч() тоже не понял, где его использовать, в каком ПКС или ПКО. Если в договорах, то там не знаю, как достать документ-источник, а если в документе, то не знаю, как сохранить договор. Пробовал в ПКО так: ДоговорОб = Объект.ДоговорКонтрагента.ПолучитьОбъект(); ДоговорОб.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем; ДоговорОб.Записать(); выводит ошибку 21, что не может записать объект. |
|||
9
Defender aka LINN
17.03.14
✎
16:24
|
(8) Тебе чтобы в другом документе написать другой код - официальное благословение из Ватикана нужно, что ли?
|
|||
10
ant19
17.03.14
✎
16:28
|
(9) дык а какой код-то? естественно, я в поступлении написал "СПоставщиком". но этот код из (8) не работает - перенес 10 документов, а потом вывалился с ошибкой 21
|
|||
11
Alamo-10
17.03.14
✎
16:40
|
(0) Тебе нужно определить тип значения документа-источника, запихать его в исходящие данные, передать в ПКО для договоров, потом передать дальше в ПКС ВидДоговора типа
ИсходящиеДанные = ВходящиеДанные; А при конвертации вида договора уже подставляешь нужное тебе значение перечисления |
|||
12
Defender aka LINN
18.03.14
✎
09:38
|
(11) ИсходящиеДанные = ВходящиеДанные; - чушь. КД это сама делает, причем наоборот, что правильно :)
(10) Угу. 20 раз отработал, а на 21 сломался. Бабушку-то мне не лохмать. |
|||
13
Alamo-10
18.03.14
✎
09:44
|
(12) Ну ваще т, после того, как ты из ПКО документа передашь свои исходящие данные в ПКО договора, они там станут входящими данными, и чтобы их передать дальше, нужно их снова сделать исходящими. Насчет того, что КД это делает сама спорить не буду, может и так, но если написать, страшного ничего не случится
|
|||
14
Йохохо
18.03.14
✎
09:50
|
типовые правила ПУБ-УПП Алгоритм ЭтоДоговорСПокупателем
Перем РезультатЗапроса; Если Источник = "" Тогда Возврат 0; КонецЕсли; ДатаНач = ?(ПустоеЗначение(ДатаНачала) = 0, ДатаНачала, Дата(0000, 1, 1)); ДатаКон = ?(ПустоеЗначение(ДатаОкончания) = 0, ?(ДатаОкончания > ПолучитьДатуТА(), ПолучитьДатуТА(), ДатаОкончания), ПолучитьДатуТА()); Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ДатаНач по ДатаКон; |Договор = Регистр.РасчетыСПокупателями.Договор; |Долг = Регистр.РасчетыСПокупателями.Долг; |Функция ДолгПриход = Приход(Долг); |Функция ДолгРасход = Расход(Долг); |Условие(Договор = Источник); |"//}}ЗАПРОС ; Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат 0; КонецЕсли; Запрос.Выгрузить(РезультатЗапроса); Если РезультатЗапроса.КоличествоСтрок() > 0 Тогда РезультатЗапроса.ПолучитьСтрокуПоНомеру(РезультатЗапроса.КоличествоСтрок()); Если (РезультатЗапроса.ДолгПриход > 0) ИЛИ (РезультатЗапроса.ДолгРасход > 0) Тогда Возврат 1; Иначе Возврат 0; КонецЕсли; Иначе Возврат 0; КонецЕсли; |
|||
15
ant19
18.03.14
✎
10:28
|
(14) там какие-то долги считаются, мне это не надо же.
тупо надо одно поле заполнить, эхехех. всю голову сломал. как из ПКО документа передать значение в ПКС договора? к примеру, я в ПКО Реализации пишу: ИсходящиеДанные = Новый Структура; ИсходящиеДанные.Вставить("ТипДок", "Реализация"); а дальше что делать? как передать эти исходящие данные дальше? |
|||
16
Йохохо
18.03.14
✎
10:44
|
(15) я из-за адблока не вижу электронку в профиле, напиши, отправлю типовые правила для примера. Там не долги считаются, а определяется тип договора
|
|||
17
Defender aka LINN
18.03.14
✎
10:52
|
(13) Да, станут входящими. И достаточно флага в ПКС, чтобы обработка конвертации сама все остальное сделала.
(15) Вот ты тугой. Это надо писать в ПКС (!) реквизита "Договор" документа. И устанавливать там конкретный вид. |
|||
18
ant19
18.03.14
✎
11:07
|
(16) отписал на почту
(17) уж какой есть. так, хорошо, пишу в ПКО документ "Реализация" - ПКС "ДоговорКонтрагента" эти строчки, а дальше что? Как в ПКО справочника "ДоговорыКонтрагентов" - ПКС "ВидДоговора" их получить? |
|||
19
Defender aka LINN
18.03.14
✎
11:15
|
(18) Открыть глаза и ветку прочитать, ять. Поставь у этого ПКС флаг "Получить из входящих данных", будь мужиком!
|
|||
20
ant19
18.03.14
✎
13:05
|
уфф, всем спасибо, получилось через ИсходящиеДанные.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |