Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 мая 2024, 21:33

Создать формулу по алгоритму

Автор dilshod1977, 05 янв 2022, 08:14

0 Пользователей и 1 гость просматривают эту тему.

dilshod1977

Здравствуйте форумчане.

00639 Согласно протоколу общего собрания Акционеров общества от 29.06.19г. дивиденты акционеру пл.№ 8600 0329 4294 0461 начисленные за 2018 год за вычетом 5 % налога на дивиденты.
ИначеЕсли Лев(ВходящиеДанные.ДЕТАЛИ_ПЛАТЕЖА, 5) = «00639» И
Найти(ВходящиеДанные.ДЕТАЛИ_ПЛАТЕЖА, «8600 0329 4294 0461») > 0 Тогда
Значение = «8600032942940461»;



00639 Согласно протоколу общего собрания Акционеров общества от 29.06.19г. дивиденты акционеру пл.№ 8600 0804 1590 3755 начисленные за 2018 год за вычетом 5 % налога на дивиденты.
ИначеЕсли Лев(ВходящиеДанные.ДЕТАЛИ_ПЛАТЕЖА, 5) = «00639» И
Найти(ВходящиеДанные.ДЕТАЛИ_ПЛАТЕЖА, «8600 0804 1590 3755») > 0 Тогда
Значение = «8600080415903755»;

00639 Согласно протоколу общего собрания Акционеров общества от 29.06.19г. дивиденты акционеру пл.№ 8600 0610 8311 2762 начисленные за 2018 год за вычетом 5% налога на дивиденты.
ИначеЕсли Лев(ВходящиеДанные.ДЕТАЛИ_ПЛАТЕЖА, 5) = «00639» И
Найти(ВходящиеДанные.ДЕТАЛИ_ПЛАТЕЖА, «8600 0610 8311 2762») > 0 Тогда
Значение = «8600061083112762»;

00639 00639 Согласно протоколу общего собрания Акционеров от 29.06.19г. дивиденты начисленные за 2018 год, за вычетом 5% налога на дивиденты акционеру Пл.№ 8600 3029 0894 6277
ИначеЕсли Лев(ВходящиеДанные.ДЕТАЛИ_ПЛАТЕЖА, 5) = «00639» И
Найти(ВходящиеДанные.ДЕТАЛИ_ПЛАТЕЖА, «8600 3029 0894 6277») > 0 Тогда
Значение = «8600302908946277»;


Здесь можно всех формулу единым сделать. То есть, найти 16-значный номер пластиковых карт (19-значный символы с пробелем) и в значение поставить эти цифры, только без пробелов. Прощу помочь?

alebul

Попробуйте такую функцию, я не знаю какая у вас структура строки поэтому предположил что после первых 5 символов идет номер карты, если это не так то просто поставьте в функции Сред() нужные ограничения.
Функция ПолучитьНомерКарты(ДеталиПлатежа, НомерПлатежа)

    Результат = "";

Если Лев(ДеталиПлатежа, 5) = НомерПлатежа Тогда
Результат = СтрЗаменить(Сред(ДеталиПлатежа, 6, 25), " ", "");
КонецЕсли;

Возврат Результат;

КонецФункции

dilshod1977

Здравствуйте. Спасибо за то, что отреагировали на мой вопрос.
Поставил даёт ошибку
Ошибка при компиляции кода для реквизита "Номер расчетного счета получателя (корреспондента)"!
{Обработка.КлиентБанк_v2_0.МодульОбъекта(856)}: Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: {(110,1)}: Ожидается последовательность операторов

Это настройка Банк клиента. Дивиденды были оплачены физлицам. В детали платежа есть номер карты физических лиц. В контрагенты я поставил расчетный счет как пластиковых карт. Вот, физические лица очень много, поэтому хотел с одной формулой поставить оплату им. 

alebul

Трудно сказать что-то без кода, запускайте отладчик и смотрите

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск