|
Бит Финанс произвольное условие в правилах трансляции | ☑ | ||
---|---|---|---|---|
0
Fuas4
01.02.15
✎
15:56
|
Добрый вечер, господа. Сабж делал кто? В чем проблема: код и логику я прописал, там у меня штук 50 буквально строк, которые выдают мне в переменную булево значение, на которое я хочу наложить условие. Я понят не могу, как мне это мое условие правильно оформить. В примерах вижу условия в 1 строку. Мое же условие генирируется вот в такое: "Если ( ЗаписьИсточник.СчетДт = ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками
И регистратор = ЗначениеРеквизита(Источник,"Регистратор");" Хотя у меня там дальше еще много чего интересного, оно в скобки условия не попадает. Киньте кто-нибудь примером, как многострочное условие вставить в произвольное условие правил транзакции |
|||
1
iHell
01.02.15
✎
16:30
|
Больше года уже с бф не работаю. Загони свое условие в пользовательские функции, а в условии трансляции пропиши выполнение этой функции.
|
|||
2
Guk
01.02.15
✎
16:38
|
(0) какая версия БиТ Финанс?...
|
|||
3
Fuas4
01.02.15
✎
16:39
|
(2) 3.0.36.11/3.1.16.4
(1) Пользовательские функции не равно общий модуль? |
|||
4
Guk
01.02.15
✎
16:40
|
(3) не, по 3.0 не помощник. у нас 2.0...
|
|||
5
Guk
01.02.15
✎
16:41
|
но спасибо за сигнал. 3.0 - говно, как я и предполагал...
|
|||
6
Fuas4
01.02.15
✎
16:42
|
(5) ну почему? Единственное, функционал есть, а справочной информации нет. Вот в этом аж трясет :) Но это к Биту вопрос, а не к БП
|
|||
7
Fuas4
01.02.15
✎
16:43
|
(1) Нашел пользовательские функции, сейчас попробую, спасибо
|
|||
8
iHell
01.02.15
✎
16:45
|
(7) Там в общем модуле трансляции есть процедура по выполнению этих функции, даже называется вроде "ВыполнитьПользовательскуюФункцию" - дальше думаю сам разберешься.
|
|||
9
Fuas4
01.02.15
✎
16:59
|
(8) В предлагаемых параметрах пользовательских функций нет плана счетов. Как так?
|
|||
10
Fuas4
01.02.15
✎
17:01
|
+(9) Не так искал, извиняюсь
|
|||
11
Fuas4
01.02.15
✎
17:40
|
Подскажите еще, плз, по синтаксису: мне в пользовательскую функцию надо отправить ссылку на регистратор и на счет источника. Я никак понять не могу, что я должен написать. Если в стандартных условиях я выбираю Регистратор =, то получаю код "МетаданныеРегистратора.имя=". я, в принципе, согласен передать и просто метаданные, но у параметров пользовательской функции нет такого типа "Метаданные", поэтому нужна ссылка, а как передать не пойму. + передать счет источника. В обычном условии указываю Счет[ДтКт] и в кода строка выглядит как "СчетДТ" или "СчетКТ". Как мне этот же самый Счет[ДТКт] передать в мою функцию? если я пишу Счет[ДТКт], то он в произвольном условии в "СчетДТ" и "счетКТ" не преобразуется
|
|||
12
Fuas4
02.02.15
✎
07:59
|
ап
|
|||
13
Лодырь
02.02.15
✎
08:18
|
(12) Не проще авторов или спецов по конфе в бите отыскать и замучать?
|
|||
14
Fuas4
02.02.15
✎
08:22
|
(13) Я с Бит Финанс раньше не работал, т.е. как быстро отвечает саппорт не знаю, но судя потому, что у их документов и справочников даже справочной информации в конфе нет, остается надеяться на Мисту
|
|||
15
Лодырь
02.02.15
✎
08:35
|
(14) Практически любой разработчик тиражного решения отвечает на вопросы заданные в письменном виде. Даже бит. Рекомендую хотя бы попробовать.
|
|||
16
n0ther
02.02.15
✎
09:22
|
вот пример, писал сам Первый БИТ в процессе внедрения
БИТ:ФИНАНС 2.8 // Правила трансляции Если ( ЗаписьИсточник.СчетДт = ПланыСчетов.Хозрасчетный.СебестоимостьПродажНеОблагаемаяЕНВД) И (ЗначениеСубконто(ЗаписьИсточник,"Дт","Субконто.НоменклатурныеГруппы") = ЗначениеПараметра("f893998c-7e72-4220-8104-7175a79c7d3a","Значение1", КэшРеквизитов)) Тогда ЗаписьПриемник.СтатьяОборотов = ЗначениеПараметра("f893998c-7e72-4220-8104-7175a79c7d3a","бит_ОборотыПоБюджетам_СтатьяОборотов", КэшРеквизитов); ИначеЕсли ( ЗаписьИсточник.СчетДт = ПланыСчетов.Хозрасчетный.СебестоимостьПродажНеОблагаемаяЕНВД) И (ЗначениеСубконто(ЗаписьИсточник,"Дт","Субконто.НоменклатурныеГруппы") = ЗначениеПараметра("3ad9c5e1-0c89-4b08-ac93-f9c119ff4787","Значение1", КэшРеквизитов)) Тогда ЗаписьПриемник.СтатьяОборотов = ЗначениеПараметра("3ad9c5e1-0c89-4b08-ac93-f9c119ff4787","бит_ОборотыПоБюджетам_СтатьяОборотов", КэшРеквизитов); ИначеЕсли ( ЗаписьИсточник.СчетДт = ПланыСчетов.Хозрасчетный.СебестоимостьПродажНеОблагаемаяЕНВД) И (ЗначениеСубконто(ЗаписьИсточник,"Дт","Субконто.НоменклатурныеГруппы") <> ЗначениеПараметра("879ac7e3-01b9-47ce-b941-8ab712ebd435","Значение1", КэшРеквизитов) И ЗначениеСубконто(ЗаписьИсточник,"Дт","Субконто.НоменклатурныеГруппы") <> ЗначениеПараметра("879ac7e3-01b9-47ce-b941-8ab712ebd435","Значение2", КэшРеквизитов)) Тогда ЗаписьПриемник.СтатьяОборотов = ЗначениеПараметра("879ac7e3-01b9-47ce-b941-8ab712ebd435","бит_ОборотыПоБюджетам_СтатьяОборотов", КэшРеквизитов); КонецЕсли; |
|||
17
Fuas4
02.02.15
✎
09:25
|
(16) Спасибо, добрый человек, но это немного не то. Мне надо текст, который пишется в произвольное условие. Что-то типа бит_МеханизмТрансляции.ВыполнитьПользовательскуюФункцию(Справочники.бит_ПользовательскиеФункции.НайтиПоНАименованию("ЕстьАванс"),Регистратор,счет)=Истина. Вот мне непонятно, как передать регистратор и счет. Остальное вроде освоил.
(15) Ищу пока регистрационные данные, чтобы вопрос на форуме Бита задать. |
|||
18
n0ther
02.02.15
✎
10:17
|
(17) а-а-а-а. такого нема. и документация у БИТа отстой
|
|||
19
n0ther
02.02.15
✎
10:36
|
(17) есть ЗаписьИсточник и ЗаписьПриемник, оттуда можно счет взять. Есть структурапараметров.СтруктураШапкиДокумента откуда можно взять реквизит Ссылка
|
|||
20
Fuas4
02.02.15
✎
11:32
|
(19) Спасибо! Сейчас попробую
|
|||
21
Fuas4
02.02.15
✎
12:13
|
(19) Со ссылкой получилось,еще раз спасибо. а в от со счетом нет. ЗаписьИсточник.Счет не существует, а записьисточник.Счет[ДтКт] ругается. что не знает "ДтКт". Понятно, что есть счетДт и СчетКт, но мне надо чтоб был именно общий счет, который в обычном условии называется Счет[ДтКт], т.к. иначе условие получается неуниверсальным. Из обычного условия Счет[ДтКт] раскладывается на счетДТ и счетКт, а из произвольного нет. Как быть?
|
|||
22
n0ther
02.02.15
✎
12:20
|
(21) что значит "из обычного условия" ? вам нужно, чтобы произвольное условие вернуло истину или ложь, с учетом счета, не важно в дебете или кредите ? ну так пишите через логический оператор ИЛИ.
ЗаписьИсточник.СчетДт = БлаБла или ЗаписьИсточник.СчетКт = БлаБла |
|||
23
Fuas4
02.02.15
✎
12:30
|
(22) из обычного условия: это из полей "Условие№1","Условие№2" и т.д. Действительно, я совсем приуныл и забыл про "или". Спасибо большое, все получилось!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |