|
Конвертация данных - Передача параметров в алгоритм | ☑ | ||
---|---|---|---|---|
0
VladSt
09.10.15
✎
14:32
|
Добрый день.
Делаю конвертацию из 1С77 в 1C8, в ПВД создаю таблицу значений и заполняю поля. Для заполнения одного поля вызываю алгоритм(функцию), которая создаст какое-то значение и вернет его. И вот тут я не знаю как передать в эту функцию параметры: [img]http://i.imgur.com/CK9z5Z2.png[/img] ругается что переменная Спр не определена. Подскажите |
|||
1
АдинС
09.10.15
✎
14:37
|
Может в одном из вариантов "С" не той раскладкой написана?))
|
|||
2
бомболюк
09.10.15
✎
14:38
|
Я когда то попробовал это дело у меня не полетело, не работает это мне кажется.
|
|||
3
Mankubus
09.10.15
✎
14:41
|
покажи как вызываешь алгоритм
|
|||
4
АдинС
09.10.15
✎
14:41
|
(2) Что не работает? алгоритмы в КД?
|
|||
5
бомболюк
09.10.15
✎
14:42
|
(4) с параметрами
|
|||
6
VladSt
09.10.15
✎
14:43
|
(3) [img]http://i.imgur.com/klR3yja.png[/img]
|
|||
7
Mankubus
09.10.15
✎
14:46
|
параметры нужны для вызова из ПКО.
в ПВД пиши: СерияИзАлгоритма = Неопределено; Выполнить(Алгоритмы.ВернутьСериюНоменклатуры); ТЧАккумы.СерияНоменклатуры = СерияИзАлгоритма ; а в конце алгоритма определяй серию: СерияИзАлгоритма = мояСерия |
|||
8
бомболюк
09.10.15
✎
14:46
|
так это семерка ;-)
Попробуй в теле алгоритма вместо Спр.Код писать ИсходящиеДанные.Код; |
|||
9
АдинС
09.10.15
✎
14:48
|
(8) Так ошибка то похоже при компиляции самого алгоритма..
причем тут семерка? |
|||
10
PLUT
09.10.15
✎
14:49
|
(0) почитал бы "знак вопросика" в алгоритмах, для чего параметры используются
а в алгоритмах все твои переменные обормотчика ПКС доступны, из которого ты этот алгоритм вызываешь (9) Возврат 1 человека смутил :) клюшками попахивает |
|||
11
АдинС
09.10.15
✎
14:49
|
(5) Возможно ты и прав, просмотрел несколько типовых правил... там во всех алгоритмов нету параметров.... 1С как всегда, что-нибудь да не работает как задуманно..
|
|||
12
бомболюк
09.10.15
✎
14:50
|
(9) в 7ке алгоритмы совсем иначе вызываются
|
|||
13
PLUT
09.10.15
✎
14:51
|
(11) "Поле "Параметры" используется при отключенном режиме совместимости. Используется для явного задания параметров алгоритмов при формировании отладочных модулей и модулей с кодом обработчиков. При включенном режиме совместимости в правилах заполнение не обязательно.
Синтаксис вызова любого алгоритма: Выполнить(Алгоритмы.<ИмяАлгоритма>) " ваш КО |
|||
14
VladSt
09.10.15
✎
14:53
|
Вот как функция выглядит в коде:
Функция ВернутьСериюНоменклатуры( ИсходящиеДанные = "", ВходящиеДанные = "", Источник = "", Приемник = "", ТипПриемника = "", Значение = "", Выражение = "", Пусто = "", ВыборкаДанных = "", Объект = "", КоллекцияОбъектов = "", ОбъектКоллекции = "", ИмяПКО = "", ИмяПКОВидСубконто = "", НомерПКО = "", НомерПКС = "", Правило = "", КлючВыгружаемыхДанных = "", НеЗапоминатьВыгруженные = "", НеЗамещатьОбъектПриЗагрузке = "", ВсеОбъектыВыгружены = "", ТолькоПолучитьУзелСсылки = "", РежимЗаписи = "", РежимПроведения = "", СтандартнаяОбработка = "", НеЗамещать = "", НеОчищать = "", УзелСсылки = "", УзелКоллекцииОбъектов = "", УзелОбъектаКоллекции = "", УзелСвойства = "", ВидСубконто = "", Субконто = "", Отказ = "") Сообщить("Попал в алгоритм!"); Сообщить("Спр.Код: " + Спр); Возврат 1; КонецФункции // ВернутьСериюНоменклатуры() |
|||
15
АдинС
09.10.15
✎
14:56
|
Тогда как в (8) должно работать..
|
|||
16
VladSt
09.10.15
✎
15:00
|
Да, как в (8) работает, причем в параметрах в алгоритме можно ничего не писать.
Спасибо |
|||
17
VladSt
09.10.15
✎
15:43
|
Народ, а подскажите, как передавать, изменять и хранить параметр (ТаблицаЗначений) при работе конвертации?
Вот создаю в ПВД ТаблицуЗначений, потом передаю ее в параметр. [img]http://i.imgur.com/Ju2gAVT.png[/img] потом при работе конвертации, буду ее заполнять, а потом выгружу. Когда перехожу в алгоритм, хотелось бы увидеть эту таблицу а тут она пустая, параметр пустой, его нету. Вот результат: [img]http://i.imgur.com/fvY2xaE.png[/img] |
|||
18
VladSt
09.10.15
✎
15:57
|
или я не правильным путем иду?
|
|||
19
VladSt
09.10.15
✎
16:15
|
Все, разобрался.
Объявлять параметр таблицей значений надо делать не в ПВД, а в обработчике ПередВыгрузкойДанных самой конвертации. Параметры.ТЗ1Аккум = СоздатьОбъект("ТаблицаЗначений"); // для создания элемента справочника уатСерииНоменклатуры Параметры.ТЗ1Аккум.НоваяКолонка("ТипАгрегата"); // - СправочникСсылка.уатТипыАгрегатов.Аккумулятор Параметры.ТЗ1Аккум.НоваяКолонка("Модель"); // - ТипАгрегата, Производитель, Модель, Емкость, СрокСлужбы (мес.) Параметры.ТЗ1Аккум.НоваяКолонка("СерийныйНомер"); // - строка Параметры.ТЗ1Аккум.НоваяКолонка("Номенклатура"); // - СправочникСсылка.Номенклатура |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |