Имя: Пароль:
1C
 
Бит Финанс произвольное условие в правилах трансляции
,
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" и т.д. Действительно, я совсем приуныл и забыл про "или". Спасибо большое, все получилось!
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn