Импорт поступлений по родительской плате в документ "Кассовое поступление" и "Поступление на счет" для БГУ 2.0 из файлов выгрузки Сбербанка (и прочих банков)
Учетные задачи - Банковские операции
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
| Наименование | Скачано | Купить файл | По подписке PRO |
|---|---|---|---|
|
Импорт поступлений по родительской плате в документ "Поступление на счет" для БГУ 2.0 из файлов выгрузки Сбербанка (и прочих банков):
.epf 12,00Kb
12
|
12 | 4 200 руб. Купить | 5 SM Скачать |
|
Импорт поступлений по родительской плате в документ "Кассовое поступление" для БГУ 2.0 из файлов выгрузки Сбербанка:
.epf 10,92Kb
58
|
58 | 4 200 руб. Купить | 5 SM Скачать |
|
Импорт поступлений по родительской плате в документ "Кассовое поступление" и "Поступление на счет" для БГУ 2.0 (Ashny)
.epf 11,47Kb
2
|
2 | 3 400 руб. Купить | 3 SM Скачать |
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Внешняя обработка табличной части документа "Кассовое поступление" в БГУ 2.0 для загрузки родительской платы из выгруженных реестров Сбербанка (теоретически можно настроить на любой формат, любого банка).
Тестировалась в конфигурации Бухгалтерия государственного учреждения, редакция 2.0 (2.0.89.48)
Платформа 1С:Предприятие 8.3 (8.3.22.1750)
По сравнению с БГУ 1.0, во второй версии вместо документа "Поступление родительской платы" используется документ "Кассовое поступление", где надо поставить галочку признака родительской платы и сформировать табличную часть.
Была поставлена задача полного заполнения документа кассового поступления по кнопке из выгруженных реестров Сбербанка.
В итоге была сделана внешняя обработка табличной части для файлов выгрузки из клиент-банка Сбербанка формата (пример имени 01_дс1_03234643177350002800_260.y09):
08-02-2023;08-08-07;8611;8611999V;526220630678;;X000023095;;СЕЛИВОНЕНКО МИЛЕНА ИЛЬИНИЧНА;Д РОДИТЕЛЬСКАЯ ПЛАТА;;ФЕДУЛОВА ИРИНА АЛЕКСАНДРОВНА;;17735000;;00007010000000000130;1989,00;1989,00;0,00;5;
08-02-2023;08-41-02;8611;8611999V;503433316992;;X000025369;;ЗАХАРОВ ЕФИМ ДМИТРИЕВИЧ;Д РОДИТЕЛЬСКАЯ ПЛАТА;;ЗАХАРОВ ДМИТРИЙ СЕРГЕЕВИЧ;;17735000;;00007010000000000130;2200,00;2200,00;0,00;5;
08-02-2023;09-00-36;9040;9040999V;353747364656;;Х000202281;;СКОРНЯКОВА АГАТА АЛЕКСЕЕВНА;Д РОДИТЕЛЬСКАЯ ПЛАТА;;СКОРНЯКОВА КСЕНИЯ СТАНИСЛАВОВНА;;17735000;;00007010000000000130;1683,00;1683,00;0,00;5;
08-02-2023;09-38-54;8611;8611999V;850709617820;;X000102521;;ФРОЛОВИЧЕВА ПОЛИНА АНДРЕЕВНА;Д РОДИТЕЛЬСКАЯ ПЛАТА;;ФРОЛОВИЧЕВА ЮЛИЯ АЛЕКСАНДРОВНА;;17735000;;00007010000000000130;1683,00;1683,00;0,00;5;
08-02-2023;11-03-53;8611;8611999V;603088710179;;X000101761;;КИСЕЛЁВ ИВАН АЛЕКСАНДРОВИЧ;Д РОДИТЕЛЬСКАЯ ПЛАТА;;КИСЕЛЁВ АЛЕКСАНДР ЕВГЕНЬЕВИЧ;;17735000;;00007010000000000130;2268,00;2268,00;0,00;5;
08-02-2023;12-08-32;8634;8634999V;603088886158;;Х000100184;;МИРОНЕНКО ЛЕВ ИЛЬИЧ;Д РОДИТЕЛЬСКАЯ ПЛАТА;;МИРОНЕНКО ИЛЬЯ АЛЕКСАНДРОВИЧ;;17735000;;00007010000000000130;1377,00;1377,00;0,00;5;
08-02-2023;12-36-01;8611;8611999V;850710066652;;X000100456;;КУЗЬМИН МИХАИЛ КИРИЛЛОВИЧ;Д РОДИТЕЛЬСКАЯ ПЛАТА;;КУЗЬМИНА ВАЛЕНТИНА НИКОЛАЕВНА;;17735000;;00007010000000000130;2754,00;2754,00;0,00;5;
08-02-2023;13-58-32;8611/00306;861100306;353748163640;;Х000100017;;КУЗНЕЦОВ МАКСИМ АНДРЕЕВИЧ;Д РОДИТЕЛЬСКАЯ ПЛАТА;;КУЗНЕЦОВА ЕЛЕНА ИГОРЕВНА;;17735000;;00007010000000000130;2754,00;2754,00;0,00;1;
08-02-2023;13-58-53;8611/00306;861100306;302307701844;;X000097112;;КУЗНЕЦОВ МАКАР АНДРЕЕВИЧ;Д РОДИТЕЛЬСКАЯ ПЛАТА;;КУЗНЕЦОВА ЕЛЕНА ИГОРЕВНА;;17735000;;00007010000000000130;2754,00;2754,00;0,00;1;
08-02-2023;17-51-46;8611;8611999V;402507544695;;Х000202227;;БАРЫШЕВ ЛЕВ ЕВГЕНЬЕВИЧ;Д РОДИТЕЛЬСКАЯ ПЛАТА;;БАРЫШЕВА ЛЮДМИЛА ВИКТОРОВНА;;17735000;;00007010000000000130;2754,00;2754,00;0,00;5;
08-02-2023;17-52-36;8611;8611999V;453752700329;;X000099024;;АВДОНИНА АРИНА СЕРГЕЕВНА;Д РОДИТЕЛЬСКАЯ ПЛАТА;;ЮКАЧЁВА ОЛЬГА АЛЕКСЕЕВНА;;17735000;;00007010000000000130;2448,00;2448,00;0,00;5;
08-02-2023;18-05-47;8611;8611999V;702113124455;;X000023426;;ГОСТЕВ ЛЕОНИД СЕРГЕЕВИЧ;Д РОДИТЕЛЬСКАЯ ПЛАТА;;ГОСТЕВА АЛЁНА ВАЛЕРЬЕВНА;;17735000;;00007010000000000130;2142,00;2142,00;0,00;5;
08-02-2023;19-39-48;8611;8611999V;603090008378;;Х000201715;;КУЛИКОВ ЛЕВ АЛЕКСЕЕВИЧ;Д РОДИТЕЛЬСКАЯ ПЛАТА;;СТЕПАНЕНКОВА НАТАЛЬЯ АНДРЕЕВНА;;17735000;;00007010000000000130;1836,00;1836,00;0,00;5;
08-02-2023;20-58-08;8611;8611999V;603090187342;;X000098773;;АГАДЖАНЯН СУРЕН БАКУРОВИЧ;Д РОДИТЕЛЬСКАЯ ПЛАТА;;Абазян Кристине;;17735000;;00007010000000000130;418,00;418,00;0,00;5;
08-02-2023;22-10-02;8611;8611999V;453753245500;;X000025213;;ФРОЛОВА ВИКТОРИЯ ЕВГЕНЬЕВНА;Д РОДИТЕЛЬСКАЯ ПЛАТА;;ГРАЧЕВА А.Г.;;17735000;;00007010000000000130;2601,00;2601,00;0,00;5;
=15;31661,00;31661,00;0,00;432032;09-02-2023;
Пример сформированного документа кассового поступления - все заполняется автоматически: галочка, счета, табличная часть, бухгалтерская операция. Документ может формироваться как с нуля, так и на основе уже сформированных кассовых поступлений, загруженных из СУФД. Все сделано для облегчения разноски родительской платы. Особенно для централизованных бухгалтерий.



Установка происходит стандартно. В администрировании ставим галочку в разделе:

Потом выбираем

По кнопке добавить из файла - загружаем внешнюю обработку.
Должно получиться так:

После этого в документе кассового поступления появляется кнопка.
![]()
Которая сделает все автоматически.
Скорее всего обработка потребует настройки под себя.
Для этого ее надо открыть в конфигураторе и в коде формы поправить параметры.
Обработка простая и ее легко доработать под любые нужды.
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
//НАСТРОЙКА ОСНОВНЫХ ПАРАМЕТРОВ
НомерВреестреЛС = 6;
НомерВреестреСум = 16;
НомерВреестреФио = 8;
ДлинаКодаЛс=10;
мПар = новый Структура("мКорСч,мИстФин,мИстСр,мКБКназн,мКОСГУназн");
//-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ ТАБЛИЧНОЙ ЧАСТИ---------------
мПар.мКорСч= "205.00";
мПар.мИстФин= "Местный бюджет";
мПар.мИстСр= "06"; //средства юрлиц
мПар.мКБКназн = "07010000000000130";
мПар.мКОСГУназн = "131";
//--------------------------------------------------------------------------
//-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ БУХ. ОПЕРАЦИИ-----------------
мПар2 = новый Структура("мСчПост,КПС_20110,ПроводкиИсполненияПлана");
мПар2.мСчПост = "201.11";
мПар2.КПС_20110 = "00000000000000000";
мПар2.ПроводкиИсполненияПлана = Истина; //формировать проводки по исполнению плана доходов?
//--------------------------------------------------------------------------
UPD. 02.02.2026
В связи с переходом на ЕБП потребовалось сделать такой же функционал, но уже в документе
"Поступление на счет", который собственно приходит из ебп.

Принцип тот же - по кнопке с синей стрелкой автоматически ставится налочка "По реестру"
и происходит загрузка по списку контрагентов от банка, типовая операция также ставится автоматом.
Протестировано на последнем релизе (2.0.107.53) в серверном режиме.
Итог:

UPD 26.02.2026
В связи с необходимостью правки (а поступившие из ЕБП документы не редактируются) поступлений на лицевой счет из ЕБП была произведена доработка, теперь можно добавлять, удалять строки табличной части документа. При этом автоматически заполняется детализация.

Также, возможно, придется изменить код анализа лицевых счетов согласно комментариям кода!
Вы всегда можете спрашивать в комментариях что надо сделать, я оперативно отвечаю.
Перед загрузкой рекомендую показать ваш формат реестров и пример лицевых счетов!
Вступайте в нашу телеграмм-группу Инфостарт
реестр загрузка импорт родительская плата сбербанк кассовое поступление БГУ
См. также
Обмен с интернет-банком 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)
Автоматическая загрузка банковской выписки — это решение для интеграции с банками через API, которое упрощает процедуру загрузки банковских операций в 1С, экономя время и ускоряя бизнес-процессы предприятия. Решение поддерживает в т.ч. автоматическую загрузку выписок из файлов в электронной почте и локальном каталоге.
73200 руб.
26.03.2026 2609 4 2
SALE! 10%
Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)
Правила в универсальном формате обмена для ERP 2.5, ERP 2.6, КА 2.5, КА 2.6, УТ 11.5, УТ 11.6, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.
27633 руб.
12.06.2017 165222 1009 329
SALE! %
Банковские операции Обмен с интернет-банком Мастера заполнения Нейросети Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1C:ERP 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:ERP. Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)
Корректируйте банковские документы быстро и легко! Создайте правило обработки — и оно автоматически применится при загрузке выписки (отбор по любому реквизиту или регулярному выражению). Решение заполняет расшифровку платежа, комиссию эквайринга, подбирает ведомости на выплату зарплаты, помечает дубли из банка на удаление и многое другое. Доплачивать за алгоритмы не нужно — они включены в решение. Обработка работает при загрузке из файлов клиент-банка и через DirectBank. Новое — искусственный интеллект: модель приводит нестандартные назначения платежа к виду, понятному алгоритмам, а ИИ-ассистент прямо в 1С консультирует по решению и разбирает код правил и алгоритмов. Поддерживаются локальные и облачные OpenAI-совместимые модели — данные могут не покидать ваш контур.
17500 руб.
20.12.2024 21701 105 32
SALE! 10%
Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)
Переносите справочную информацию, остатки и документы из УПП 1.3 в Бухгалтерию 3.0 с помощью готовых правил. Переносится более 50 видов документов. Простой интерфейс и понятные настройки.
42000
37800 руб.
15.12.2021 37214 270 68
SALE! 10%
Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Разработчик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 Бухгалтерский учет Управленческий учет Платные (руб)
Переносите справочную информацию, остатки и документы из УПП 1.3 в ERP 2.6 и КА 2.6 с помощью готовых правил. Переносится более 60 видов документов. Простой интерфейс и понятные настройки.
42000
37800 руб.
24.06.2020 73287 108 35
Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием Россия Платные (руб)
Регулярный обмен, выгрузка, перенос из КА 1.1, УПП 1.3, УТ 10.3 для обмена с любыми конфигурациями, поддерживающими обмен в формате EnterpriseData (КД3) - БП 3.0, ERP, КА 2, УТ 11, Розница 3, УНФ 3 и другими. Правила для старых и доработанных конфигураций не требуют синхронного обновления и совместимы с новыми и будущими конфигурациями. Обмен по расписанию, через папку, FTP, почту.
27572 руб.
18.02.2016 209413 686 559
Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Разработчик 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)
Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 10 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.
85400 руб.
05.10.2022 14600 17 8
Кассовые операции Файловый обмен (TXT, XML, DBF), FTP ЭДО и ОФД НДС 22% Разработчик Бухгалтер Пользователь 1С:Предприятие 8 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Бухгалтерский учет Налоговый учет Управленческий учет Платные (руб)
Специализированные обработки для загрузки кассовых чеков в локальных базах: 1С:БП 3.0, 1С:УНФ 3.0, 1С:Розница 3.0, 1С:КА. 2.5, 1С:ERP Управление предприятием 2.5 и 1С:УТ 11.5. Вы просто сканируете QR коды с бумажных и электронных чеков c помощью мобильного приложения ФНС или сканера штрихкодов и чеки автоматически (без ручного ввода) загружаются в документы 'Авансовый отчет', 'Расходы предпринимателя', 'Путевой лист', 'Приходная накладная', 'Поступление (акты, накладные, УПД)', 'Приобретение товаров и услуг', 'Отчет о розничных продажах', 'Поступление денежных документов' и 'Реестры выплат самозанятым'. Обработка будет работать на любой версии конфигурации управляемые формы: базовой, ПРОФ или КОРП. Для загрузки чеков самозанятых достаточно только ссылки на чек.
6990 руб.
19.08.2020 83894 383 93
что код лицевого счета ребенка имеет длину 10 символов, начинается с буквы Х как английской так и русской, именно поэтому
приходится делать такие проверки.
если у вас иная ситуация то просто в конфигураторе установите свою длину кода в начале процедуры модуля формы.
все параметры идут в начале
настроечные переменные |
|---|
//НАСТРОЙКА ОСНОВНЫХ ПАРАМЕТРОВ
НомерВреестреЛС = 6;
НомерВреестреСум = 16;
НомерВреестреФио = 8;
ДлинаКодаЛс=10;
мПар = новый Структура("мКорСч,мИстФин,мИстСр,мКБКназн,мКОСГУназн");
//-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ ТАБЛИЧНОЙ ЧАСТИ---------------
мПар.мКорСч= "205.00";
мПар.мИстФин= "Местный бюджет";
мПар.мИстСр= "06"; //средства юрлиц
мПар.мКБКназн = "07010000000000130";
мПар.мКОСГУназн = "131";
//--------------------------------------------------------------------------
//-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ БУХ. ОПЕРАЦИИ-----------------
мПар2 = новый Структура("мСчПост,КПС_20110,ПроводкиИсполненияПлана");
мПар2.мСчПост = "201.11";
мПар2.КПС_20110 = "00000000000000000";
мПар2.ПроводкиИсполненияПлана = Истина; //формировать проводки по исполнению плана доходов?
//--------------------------------------------------------------------------
Показать |
а так же измените эти строки
код |
|---|
Если СтрДлина(СтруктураПлатежа[НомерВреестреЛС])=5 тогда //проверяем не пропустили ли в коде лс X0000
ЛицевойСчет = "X0000" + СтруктураПлатежа[НомерВреестреЛС]; //ЗАКОМЕНТИРОВАТЬ ЭТУ СТРОКУ ЕСЛИ ОНА ВАМ НЕ НУЖНА
ИначеЕсли СтрДлина(СтруктураПлатежа[НомерВреестреЛС])=6 тогда //проверяем не пропустили ли в коде лс X000
ЛицевойСчет = "X000" + СтруктураПлатежа[НомерВреестреЛС]; //ЗАКОМЕНТИРОВАТЬ ЭТУ СТРОКУ ЕСЛИ ОНА ВАМ НЕ НУЖНА
ИначеЕсли СтрДлина(СтруктураПлатежа[НомерВреестреЛС])=ДлинаКодаЛс тогда //проверка на корректность длины
//ЗАКОММЕНТИРОВАТЬ СТРОКУ НИЖЕ ЕСЛИ У ВАС ЛИЦЕВЫЕ СЧЕТА БЕЗ Х ИЛИ ПОСТАВИТЬ ВАШУ БУКВУ
ЛицевойСчет = "X" + Прав(СтруктураПлатежа[НомерВреестреЛС],СтрДлина(СтруктураПлатежа[НомерВреестреЛС])-1);//ставим по умолчанию англ Х в начале кода лс
//Сообщить(ЛицевойСчет);
Иначе //длина не совпала - код лс не опознан, сообщаем и идем далее
Сообщить("Лицевой счет не опознан " + СтрокаРеестра);
ЛицевойСчет = ""; //ВЫ МОЖЕТЕ НАПИСАТЬ ТУТ ЛицевойСчет=СтруктураПлатежа[НомерВреестреЛС] если хотите чтобы пробовало заполняться В ЛЮБОМ СЛУЧАЕ
конецесли;
Показать |
да конечно надо вносить правки.
значит в начале обработки как описано в публикации правьте
НомерВреестреЛС = 4
НомерВреестрееСум=10
ДлинКодаЛС=12
и этого должно хватить
если что пишите.
а править моем случае мало чего надо....там не сложно.
даже не программист а просто тот кто обновляет базы - справится.
под ваш формат надо исправить код
первые 52 строки кода формы замените в конфигураторе вот так и сохраните.
ваш файл должен начинаться со слова реестр и удалите из него строки дублей (пока можете попробовать оставить)
код |
|---|
| &НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт //НАСТРОЙКА ОСНОВНЫХ ПАРАМЕТРОВ НомерВреестреЛС = 7; НомерВреестреСум = 11; НомерВреестреФио = 6; ДлинаКодаЛс=10; мПар = новый Структура("мКорСч,мИстФин,мИстСр,мКБКназн,мКОСГУназн"); //-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ ТАБЛИЧНОЙ ЧАСТИ--------------- мПар.мКорСч= "205.00"; мПар.мИстФин= "Местный бюджет"; мПар.мИстСр= "06"; //средства юрлиц мПар.мКБКназн = "07010000000000130"; мПар.мКОСГУназн = "131"; //-------------------------------------------------------------------------- //-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ БУХ. ОПЕРАЦИИ----------------- мПар2 = новый Структура("мСчПост,КПС_20110,ПроводкиИсполненияПлана"); мПар2.мСчПост = "201.11"; мПар2.КПС_20110 = "00000000000000000"; мПар2.ПроводкиИсполненияПлана = Истина; //формировать проводки по исполнению плана доходов? //-------------------------------------------------------------------------- Диалог = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Если Диалог.Выбрать() Тогда ФайлРеестра = Диалог.ПолноеИмяФайла; иначе Перейти ~НеВыбралиФайл; КонецЕсли; Текст = Новый ТекстовыйДокумент; Текст.Прочитать(ФайлРеестра); масс = новый массив; Если Найти(ФайлРеестра,"\реестр")<>0 тогда //файл реестра сбера У НАС ВСЕГДА НАЧИНАЕТСЯ С 01_, поправьте если у вас не так - на ваш случай Для Сч = 1 по Текст.КоличествоСтрок() Цикл СтрокаРеестра = Текст.ПолучитьСтроку(Сч); СтруктураПлатежа = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаРеестра,";"); //проверяем дошли до конца файла или нет Если (СтруктураПлатежа.Количество() = 6 или СтруктураПлатежа.Количество() = 7) И Сч = Текст.КоличествоСтрок() Тогда Прервать; КонецЕсли; ЛицевойСчет = Прав(СтруктураПлатежа[НомерВреестреЛС],СтрДлина(СтруктураПлатежа[НомерВреестреЛС])-СтрНайти(СтруктураПлатежа[НомерВреестреЛС]," ",НаправлениеПоиска.СКонца)); Назначение = СтруктураПлатежа[9]; //не используется Сумма = Число(СтруктураПлатежа[НомерВреестреСум]); элт = Новый Структура("ЛС,СУМ,ФИО"); элт.ЛС = ЛицевойСчет; элт.СУМ = Сумма; элт.ФИО = СтруктураПлатежа[НомерВреестреФио]; масс.Добавить(элт); КонецЦикла; КонецЕсли; |
Код начала модуля формы |
|---|
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
//НАСТРОЙКА ОСНОВНЫХ ПАРАМЕТРОВ
НомерВреестреЛС = 7;
НомерВреестреСум = 11;
НомерВреестреФио = 6;
ДлинаКодаЛс=10;
мПар = новый Структура("мКорСч,мИстФин,мИстСр,мКБКназн,мКОСГУназн");
//-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ ТАБЛИЧНОЙ ЧАСТИ---------------
мПар.мКорСч= "205.00";
мПар.мИстФин= "Местный бюджет";
мПар.мИстСр= "06"; //средства юрлиц
мПар.мКБКназн = "07010000000000130";
мПар.мКОСГУназн = "131";
//--------------------------------------------------------------------------
//-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ БУХ. ОПЕРАЦИИ-----------------
мПар2 = новый Структура("мСчПост,КПС_20110,ПроводкиИсполненияПлана");
мПар2.мСчПост = "201.11";
мПар2.КПС_20110 = "00000000000000000";
мПар2.ПроводкиИсполненияПлана = Истина; //формировать проводки по исполнению плана доходов?
//--------------------------------------------------------------------------
Диалог = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Если Диалог.Выбрать() Тогда
ФайлРеестра = Диалог.ПолноеИмяФайла;
иначе
Перейти ~НеВыбралиФайл;
КонецЕсли;
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ФайлРеестра);
масс = новый массив;
Если Найти(ФайлРеестра,"\реестр")<>0 тогда //файл реестра сбера У НАС ВСЕГДА НАЧИНАЕТСЯ С 01_, поправьте если у вас не так - на ваш случай
Для Сч = 1 по Текст.КоличествоСтрок() Цикл
СтрокаРеестра = Текст.ПолучитьСтроку(Сч);
СтруктураПлатежа = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаРеестра,";");
//проверяем дошли до конца файла или нет
Если (СтруктураПлатежа.Количество() = 6 или СтруктураПлатежа.Количество() = 7) И Сч = Текст.КоличествоСтрок() Тогда
Прервать;
КонецЕсли;
ЛицевойСчет = Прав(СтруктураПлатежа[НомерВреестреЛС],СтрДлина(СтруктураПлатежа[НомерВреестреЛС])-СтрНайти(СтруктураПлатежа[НомерВреестреЛС]," ",НаправлениеПоиска.СКонца));
Назначение = СтруктураПлатежа[9]; //не используется
Сумма = Число(СтруктураПлатежа[НомерВреестреСум]);
элт = Новый Структура("ЛС,СУМ,ФИО");
элт.ЛС = ЛицевойСчет;
элт.СУМ = Сумма;
элт.ФИО = СтруктураПлатежа[НомерВреестреФио];
масс.Добавить(элт);
КонецЦикла;
КонецЕсли;
ОбъектФормы = ВладелецФормы.Объект;
//заполняем объект данными
ЗапНаСервере(ОбъектФормы,масс,мПар);
КопироватьДанныеФормы(ОбъектФормы, ВладелецФормы.Объект);
ВладелецФормы.ОбновитьОтображениеДанных();
//включаем флажок род платы
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ВладелецФормы.Элементы, "РасшифровкаПлатежаРебенок", "Видимость", ИСТИНА);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ВладелецФормы.Элементы, "РасшифровкаПлатежаКонтрагент", "Видимость", НЕ ИСТИНА);
ВладелецФормы.Записать();
//заполняем бух операцию
запбо(ОбъектФормы,мПар2);
//обновляем данные
ВладелецФормы.Прочитать();
ВладелецФормы.ОбновитьОтображениеДанных();
~НеВыбралиФайл:
КонецПроцедуры
Показать |
~НеВыбралиФайл:<<?>> (Проверка: Сервер)
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(1,1)}: Обнаружено логическое завершение исходного текста модуля (Проверка: Сервер)
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(178,17)}: Обнаружено логическое завершение исходного текста модуля
~НеВыбралиФайл:<<?>> (Проверка: Тонкий клиент)
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(1,1)}: Обнаружено логическое завершение исходного текста модуля (Проверка: Тонкий клиент)
(6) ошибки при отладке
вот тот код что я скинул вам, его надо поместить в начало модуля до
&НаСервере
Процедура ЗапНаСервере(Объект, мас, пар)
то есть все что перед этим удалить, и вставить код
Скрытый текст |
|---|
| &НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт //НАСТРОЙКА ОСНОВНЫХ ПАРАМЕТРОВ НомерВреестреЛС = 7; НомерВреестреСум = 11; НомерВреестреФио = 6; ДлинаКодаЛс=10; мПар = новый Структура("мКорСч,мИстФин,мИстСр,мКБКназн,мКОСГУназн"); //-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ ТАБЛИЧНОЙ ЧАСТИ--------------- мПар.мКорСч= "205.00"; мПар.мИстФин= "Местный бюджет"; мПар.мИстСр= "06"; //средства юрлиц мПар.мКБКназн = "07010000000000130"; мПар.мКОСГУназн = "131"; //-------------------------------------------------------------------------- //-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ БУХ. ОПЕРАЦИИ----------------- мПар2 = новый Структура("мСчПост,КПС_20110,ПроводкиИсполненияПлана"); мПар2.мСчПост = "201.11"; мПар2.КПС_20110 = "00000000000000000"; мПар2.ПроводкиИсполненияПлана = Истина; //формировать проводки по исполнению плана доходов? //-------------------------------------------------------------------------- Диалог = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Если Диалог.Выбрать() Тогда ФайлРеестра = Диалог.ПолноеИмяФайла; иначе Перейти ~НеВыбралиФайл; КонецЕсли; Текст = Новый ТекстовыйДокумент; Текст.Прочитать(ФайлРеестра); масс = новый массив; Если Найти(ФайлРеестра,"\реестр")<>0 тогда //файл реестра сбера У НАС ВСЕГДА НАЧИНАЕТСЯ С 01_, поправьте если у вас не так - на ваш случай Для Сч = 1 по Текст.КоличествоСтрок() Цикл СтрокаРеестра = Текст.ПолучитьСтроку(Сч); СтруктураПлатежа = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаРеестра,";"); //проверяем дошли до конца файла или нет Если (СтруктураПлатежа.Количество() = 6 или СтруктураПлатежа.Количество() = 7) И Сч = Текст.КоличествоСтрок() Тогда Прервать; КонецЕсли; ЛицевойСчет = Прав(СтруктураПлатежа[НомерВреестреЛС],СтрДлина(СтруктураПлатежа[НомерВреестреЛС])-СтрНайти(СтруктураПлатежа[НомерВреестреЛС]," ",НаправлениеПоиска.СКонца)); Назначение = СтруктураПлатежа[9]; //не используется Сумма = Число(СтруктураПлатежа[НомерВреестреСум]); элт = Новый Структура("ЛС,СУМ,ФИО"); элт.ЛС = ЛицевойСчет; элт.СУМ = Сумма; элт.ФИО = СтруктураПлатежа[НомерВреестреФио]; масс.Добавить(элт); КонецЦикла; КонецЕсли; ОбъектФормы = ВладелецФормы.Объект; //заполняем объект данными ЗапНаСервере(ОбъектФормы,масс,мПар); КопироватьДанныеФормы(ОбъектФормы, ВладелецФормы.Объект); ВладелецФормы.ОбновитьОтображениеДанных(); //включаем флажок род платы ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( ВладелецФормы.Элементы, "РасшифровкаПлатежаРебенок", "Видимость", ИСТИНА); ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( ВладелецФормы.Элементы, "РасшифровкаПлатежаКонтрагент", "Видимость", НЕ ИСТИНА); ВладелецФормы.Записать(); //заполняем бух операцию запбо(ОбъектФормы,мПар2); //обновляем данные ВладелецФормы.Прочитать(); ВладелецФормы.ОбновитьОтображениеДанных(); ~НеВыбралиФайл: КонецПроцедуры |
(10)
&НаКлиенте
//Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
// НомерВреестреЛС = 7;
// НомерВреестреСум = 11;
// НомерВреестреФио = 6;
// ДлинаКодаЛс=10;
// мПар = новый Структура("мКорСч,мИстФин,мИстСр,мКБКназн,мКОСГУназн");
// //-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ ТАБЛИЧНОЙ ЧАСТИ---------------
//
// мПар.мКорСч= "205.00";
// //мПар.мИстФин= "Местный бюджет";
// мПар.мИстСр= "06"; //средства юрлиц
// мПар.мКБКназн = "07011000004003130";
// мПар.мКОСГУназн = "131";
// //--------------------------------------------------------------------------
// //-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ БУХ. ОПЕРАЦИИ-----------------
// мПар2 = новый Структура("мСчПост,КПС_20110,ПроводкиИсполненияПлана");
// мПар2.мСчПост = "201.11";
// мПар2.КПС_20110 = "00000000000000000";
// мПар2.ПроводкиИсполненияПлана = Истина; //формировать проводки по исполнению плана доходов?
// //--------------------------------------------------------------------------
//
// Диалог = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
// Если Диалог.Выбрать() Тогда
// ФайлРеестра = Диалог.ПолноеИмяФайла;
// иначе
// Перейти ~НеВыбралиФайл;
// КонецЕсли;
//Текст = Новый ТекстовыйДокумент;
//Текст.Прочитать(ФайлРеестра);
//масс = новый массив;
//Если Найти(ФайлРеестра,"\реестр")<>0 тогда //файл реестра сбера У НАС ВСЕГДА НАЧИНАЕТСЯ С 01_, поправьте если у вас не так - на ваш случай
//Для Сч = 1 по Текст.КоличествоСтрок() Цикл
//СтрокаРеестра = Текст.ПолучитьСтроку(Сч);
//СтруктураПлатежа = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаРеестра,";");
////проверяем дошли до конца файла или нет
//Если (СтруктураПлатежа.Количество() = 6 или СтруктураПлатежа.Количество() = 7) И Сч = Текст.КоличествоСтрок() Тогда
//Прервать;
//КонецЕсли;
//ЛицевойСчет = Прав(СтруктураПлатежа[НомерВреестреЛС],СтрДлина(СтруктураПлатежа[НомерВреестреЛС])-СтрНайти(СтруктураПлатежа[НомерВреестреЛС]," ",НаправлениеПоиска.СКонца));
//Назначение = СтруктураПлатежа[9]; //не используется
//Сумма = Число(СтруктураПлатежа[НомерВреестреСум]);
//элт = Новый Структура("ЛС,СУМ,ФИО");
//элт.ЛС = ЛицевойСчет;
//элт.СУМ = Сумма;
//элт.ФИО = СтруктураПлатежа[НомерВреестреФио];
//масс.Добавить(элт);
//КонецЦикла;
//КонецЕсли;
//&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
//НАСТРОЙКА ОСНОВНЫХ ПАРАМЕТРОВ
НомерВреестреЛС = 7;
НомерВреестреСум = 11;
НомерВреестреФио = 6;
ДлинаКодаЛс=10;
мПар = новый Структура("мКорСч,мИстФин,мИстСр,мКБКназн,мКОСГУназн");
//-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ ТАБЛИЧНОЙ ЧАСТИ---------------
мПар.мКорСч= "205.00";
мПар.мИстФин= "Местный бюджет";
мПар.мИстСр= "06"; //средства юрлиц
мПар.мКБКназн = "07010000000000130";
мПар.мКОСГУназн = "131";
//--------------------------------------------------------------------------
//-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ БУХ. ОПЕРАЦИИ-----------------
мПар2 = новый Структура("мСчПост,КПС_20110,ПроводкиИсполненияПлана");
мПар2.мСчПост = "201.11";
мПар2.КПС_20110 = "00000000000000000";
мПар2.ПроводкиИсполненияПлана = Истина; //формировать проводки по исполнению плана доходов?
//--------------------------------------------------------------------------
Диалог = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Если Диалог.Выбрать() Тогда
ФайлРеестра = Диалог.ПолноеИмяФайла;
иначе
Перейти ~НеВыбралиФайл;
КонецЕсли;
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ФайлРеестра);
масс = новый массив;
Если Найти(ФайлРеестра,"\реестр")<>0 тогда //файл реестра сбера У НАС ВСЕГДА НАЧИНАЕТСЯ С 01_, поправьте если у вас не так - на ваш случай
Для Сч = 1 по Текст.КоличествоСтрок() Цикл
СтрокаРеестра = Текст.ПолучитьСтроку(Сч);
СтруктураПлатежа = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаРеестра,";");
//проверяем дошли до конца файла или нет
Если (СтруктураПлатежа.Количество() = 6 или СтруктураПлатежа.Количество() = 7) И Сч = Текст.КоличествоСтрок() Тогда
Прервать;
КонецЕсли;
ЛицевойСчет = Прав(СтруктураПлатежа[НомерВреестреЛС],СтрДлина(СтруктураПлатежа[НомерВреестреЛС])-СтрНайти(СтруктураПлатежа[НомерВреестреЛС]," ",НаправлениеПоиска.СКонца));
Назначение = СтруктураПлатежа[9]; //не используется
Сумма = Число(СтруктураПлатежа[НомерВреестреСум]);
элт = Новый Структура("ЛС,СУМ,ФИО");
элт.ЛС = ЛицевойСчет;
элт.СУМ = Сумма;
элт.ФИО = СтруктураПлатежа[НомерВреестреФио];
масс.Добавить(элт);
КонецЦикла;
КонецЕсли;
ОбъектФормы = ВладелецФормы.Объект;
//заполняем объект данными
ЗапНаСервере(ОбъектФормы,масс,мПар);
КопироватьДанныеФормы(ОбъектФормы, ВладелецФормы.Объект);
ВладелецФормы.ОбновитьОтображениеДанных();
//включаем флажок род платы
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ВладелецФормы.Элементы, "РасшифровкаПлатежаРебенок", "Видимость", ИСТИНА);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ВладелецФормы.Элементы, "РасшифровкаПлатежаКонтрагент", "Видимость", НЕ ИСТИНА);
ВладелецФормы.Записать();
//заполняем бух операцию
запбо(ОбъектФормы,мПар2);
//обновляем данные
ВладелецФормы.Прочитать();
ВладелецФормы.ОбновитьОтображениеДанных();
~НеВыбралиФайл:
КонецПроцедуры
//***********
Если Найти(ФайлРеестра,"\01_")=0 тогда // не сбер - пример разделения, код надо настраивать по аналогии ВЫШЕ
Для Сч = 1 по Текст.КоличествоСтрок() Цикл
СтрокаРеестра = Текст.ПолучитьСтроку(Сч);
СтруктураПлатежа = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаРеестра,";");
Если СтруктураПлатежа.Количество() = 6 И Сч = Текст.КоличествоСтрок() Тогда
Прервать;
КонецЕсли;
Если СтруктураПлатежа.Количество() <> 15 Тогда
Сообщить("Не могу разобрать строку №" + Строка(Сч + 1) + ", ожидается 15 полей, а получено: " + СтруктураПлатежа.Количество());
Сообщить(СтрокаРеестра);
Продолжить;
КонецЕСли;
Если СтрДлина(СтруктураПлатежа[6])=5 тогда
ЛицевойСчет = "X0000" + СтруктураПлатежа[6];
ИначеЕсли СтрДлина(СтруктураПлатежа[6])=6 тогда
ЛицевойСчет = "X000" + СтруктураПлатежа[6];
ИначеЕсли СтрДлина(СтруктураПлатежа[6])=10 тогда
//ЗАКОММЕНТИРОВАТЬ ЕСЛИ У ВАС ЛИЦЕВЫЕ СЧЕТА БЕЗ Х
ЛицевойСчет = "X" + Прав(СтруктураПлатежа[6],СтрДлина(СтруктураПлатежа[6])-1);
//Сообщить(ЛицевойСчет);
Иначе
Сообщить("Лицевой счет не опознан " + СтрокаРеестра);
ЛицевойСчет = "";
конецесли;
Назначение = СтруктураПлатежа[10];
Сумма = Число(СтруктураПлатежа[12]);
элт = Новый Структура("ЛС,СУМ,ФИО");
элт.ЛС = ЛицевойСчет;
элт.СУМ = Сумма;
элт.ФИО = СтруктураПлатежа[8];
масс.Добавить(элт);
КонецЦикла;
КонецЕсли;
ОбъектФормы = ВладелецФормы.Объект;
//заполняем объект данными
ЗапНаСервере(ОбъектФормы,масс,мПар);
КопироватьДанныеФормы(ОбъектФормы, ВладелецФормы.Объект);
ВладелецФормы.ОбновитьОтображениеДанных();
//вклюючаем флажок род платы
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ВладелецФормы.Элементы, "РасшифровкаПлатежаРебенок", "Видимость", ИСТИНА);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ВладелецФормы.Элементы, "РасшифровкаПлатежаКонтрагент", "Видимость", НЕ ИСТИНА);
ВладелецФормы.Записать();
//заполняем бух операцию
запбо(ОбъектФормы,мПар2);
//обновляем данные
ВладелецФормы.Прочитать();
ВладелецФормы.ОбновитьОтображениеДанных();
~НеВыбралиФайл:
КонецПроцедуры
&НаСервере
Процедура ЗапНаСервере(Объект, мас, пар)
ссылка = Документы.КассовоеПоступление.НайтиПоНомеру(Объект.Номер,ТекущаяДата());
//Сообщить(ссылка);
обе = ссылка.ПолучитьОбъект();
ОбъектНазначения = Объект;
ОбъектНазначения.РодительскаяПлата = Истина;
ОбъектНазначения.КорСчет = ПланыСчетов.ЕПСБУ.НайтиПоКоду(пар.мКорСч);
ОбъектНазначения.ИФО = Справочники.ИсточникиФинансовогоОбеспечения.НайтиПоНаименованию(пар.мИстФин);
обс = 0;
ОбъектНазначения.РасшифровкаПлатежа.Очистить();
для каждого м из мас цикл
стр = ОбъектНазначения.РасшифровкаПлатежа.Добавить();
стр.СуммаВал = м.СУМ;
обс = обс + м.СУМ;
//-----------------------------Пытаемся определить ребенка по ЛИЦЕВОМУ-------------
//Сообщить(м.ЛС);
стр.Ребенок = Справочники.Дети.НайтиПоКоду(м.ЛС);
//Сообщить(Строка(стр.Ребенок) + " = " + Строка(стр.Ребенок.Организация));
стр.Контрагент = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(стр.Ребенок, "Контрагент");
если стр.Ребенок.Пустая() или стр.Ребенок.Организация <> ОбъектНазначения.Организация тогда
стр.Ребенок = Справочники.Дети.НайтиПоКоду("Х"+Прав(м.ЛС,9));//тут пробуем русскую Х
стр.Контрагент = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(стр.Ребенок, "Контрагент");
//Сообщить(Строка(стр.Ребенок) + " \ " + стр.Ребенок.Организация);
если стр.Ребенок.Организация <> ОбъектНазначения.Организация тогда
стр.Ребенок=Неопределено;
стр.Контрагент=Неопределено;
КонецЕсли;
конецесли;
//---------------------------------------------------------------------------------
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| СоставГруппДДУ.ГруппаДетскогоУчреждения КАК ГруппаДетскогоУчреждения,
| СоставГруппДДУ.СтавкаОплаты КАК СтавкаОплаты,
| СоставГруппДДУ.Льгота КАК Льгота,
| СоставГруппДДУ.Договор КАК Договор,
| СоставГруппДДУ.Период КАК Период,
| СоставГруппДДУ.Актуальность КАК Актуальность
|ИЗ
| РегистрСведений.СоставГруппДДУ КАК СоставГруппДДУ
|ГДЕ
| СоставГруппДДУ.Ребенок = &Ребенок
|
|УПОРЯДОЧИТЬ ПО
| Период";
Запрос.УстановитьПараметр("Ребенок", стр.Ребенок);
РезультатЗапроса = Запрос.Выполнить();
р = РезультатЗапроса.Выбрать();
р.Следующий();
//Сообщить(р.Договор);
стр.Договор = р.Договор;
стр.ИсточникСредств = Справочники.ИсточникиСредств.НайтиПоКоду(пар.мИстСр).Ссылка;
если стр.Ребенок.Пустая() или стр.Ребенок=Неопределено тогда
стр.Примечание = "не найдено! ФИО = "+м.ФИО+" "+ТекущаяДата();
Сообщить(стр.Примечание);
иначе
стр.Примечание = "импорт реестра успешен "+ТекущаяДата();
КонецЕсли;
стр.КФО = Перечисления.КВД.Внебюджет;
стр.КБКНазначениеПлатежа = Справочники.КлассификационныеПризнакиСчетов.НайтиПоКоду(пар.мКБКназн).Ссылка;
стр.КОСГУНазначениеПлатежа = Справочники.КОСГУ.НайтиПоКоду(пар.мКОСГУназн).Ссылка;
конеццикла;
ОбъектНазначения.СуммаДокументаВВалюте=обс;
КонецПроцедуры
&НаСервере
Процедура запбо(Объект,пар)
ссылка = Документы.КассовоеПоступление.НайтиПоНомеру(Объект.Номер,ТекущаяДата());
//Сообщить(ссылка);
обе = ссылка.ПолучитьОбъект();
то = Справочники.ТиповыеОперации.НайтиПоНаименованию("Поступление родительской платы");//тип операции
ректип = Справочники.ТиповыеОперации.ДополнительныеРеквизитыТиповойОперации(то);
ДополнительныеРеквизиты = Новый Структура("СчетПоступления", ПланыСчетов.ЕПСБУ.НайтиПоКоду(пар.мСчПост));
ДополнительныеРеквизиты.Вставить("КПС_20110",Справочники.КлассификационныеПризнакиСчетов.НайтиПоКоду(пар.КПС_20110).Ссылка);
ДополнительныеРеквизиты.Вставить("ПроводкиИсполненияПлана",пар.ПроводкиИсполненияПлана);
БухгалтерскиеОперацииСервер.ДобавитьДанныеДляПроведения(обе,то,ДополнительныеРеквизиты,Ложь);
обе.Записать(РежимЗаписиДокумента.Запись);
КонецПроцедуры
&НаСервере
Функция ИщемТО()
Возврат Справочники.ТиповыеОперации.НайтиПоНаименованию("Поступление родительской платы");
КонецФункции
Показатьво то что вставила
все равно ошибки
скопировано не правильно
~НеВыбралиФайл:
КонецПроцедуры
после него лишнее
должно сразу быть
&НаСервере
Процедура запбо(Объект,пар)
смотрите внимательнее
(12)Скопировала 72 строки,
заремила остальное все
оставила
&НаСервере
Процедура запбо(Объект,пар)
ссылка = Документы.КассовоеПоступление.НайтиПоНомеру(Объект.Номер,ТекущаяДата());
//Сообщить(ссылка);
обе = ссылка.ПолучитьОбъект();
то = Справочники.ТиповыеОперации.НайтиПоНаименованию("Поступление родительской платы");//тип операции
ректип = Справочники.ТиповыеОперации.ДополнительныеРеквизитыТиповойОперации(то);
ДополнительныеРеквизиты = Новый Структура("СчетПоступления", ПланыСчетов.ЕПСБУ.НайтиПоКоду(пар.мСчПост));
ДополнительныеРеквизиты.Вставить("КПС_20110",Справочники.КлассификационныеПризнакиСчетов.НайтиПоКоду(пар.КПС_20110).Ссылка);
ДополнительныеРеквизиты.Вставить("ПроводкиИсполненияПлана",пар.ПроводкиИсполненияПлана);
БухгалтерскиеОперацииСервер.ДобавитьДанныеДляПроведения(обе,то,ДополнительныеРеквизиты,Ложь);
обе.Записать(РежимЗаписиДокумента.Запись);
КонецПроцедуры
&НаСервере
Функция ИщемТО()
Возврат Справочники.ТиповыеОперации.НайтиПоНаименованию("Поступление родительской платы");
КонецФункции Показатьне работает
как минимум сообщения должны выдаваться
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
//НАСТРОЙКА ОСНОВНЫХ ПАРАМЕТРОВ
НомерВреестреЛС = 7;
НомерВреестреСум = 11;
НомерВреестреФио = 6;
ДлинаКодаЛс=10;
мПар = новый Структура("мКорСч,мИстФин,мИстСр,мКБКназн,мКОСГУназн");
//-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ ТАБЛИЧНОЙ ЧАСТИ---------------
мПар.мКорСч= "205.00";
мПар.мИстФин= "Местный бюджет";
мПар.мИстСр= "06"; //средства юрлиц
мПар.мКБКназн = "07010000000000130";
мПар.мКОСГУназн = "131";
//--------------------------------------------------------------------------
//-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ БУХ. ОПЕРАЦИИ-----------------
мПар2 = новый Структура("мСчПост,КПС_20110,ПроводкиИсполненияПлана");
мПар2.мСчПост = "201.11";
мПар2.КПС_20110 = "00000000000000000";
мПар2.ПроводкиИсполненияПлана = Истина; //формировать проводки по исполнению плана доходов?
//--------------------------------------------------------------------------
Диалог = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Если Диалог.Выбрать() Тогда
ФайлРеестра = Диалог.ПолноеИмяФайла;
иначе
Перейти ~НеВыбралиФайл;
КонецЕсли;
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ФайлРеестра);
масс = новый массив;
Если Найти(ФайлРеестра,"\реестр")<>0 тогда //файл реестра сбера У НАС ВСЕГДА НАЧИНАЕТСЯ С 01_, поправьте если у вас не так - на ваш случай
Для Сч = 1 по Текст.КоличествоСтрок() Цикл
СтрокаРеестра = Текст.ПолучитьСтроку(Сч);
СтруктураПлатежа = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаРеестра,";");
//проверяем дошли до конца файла или нет
Если (СтруктураПлатежа.Количество() = 6 или СтруктураПлатежа.Количество() = 7) И Сч = Текст.КоличествоСтрок() Тогда
Прервать;
КонецЕсли;
ЛицевойСчет = Прав(СтруктураПлатежа[НомерВреестреЛС],СтрДлина(СтруктураПлатежа[НомерВреестреЛС])-СтрНайти(СтруктураПлатежа[НомерВреестреЛС]," ",НаправлениеПоиска.СКонца));
Назначение = СтруктураПлатежа[9]; //не используется
Сумма = Число(СтруктураПлатежа[НомерВреестреСум]);
элт = Новый Структура("ЛС,СУМ,ФИО");
элт.ЛС = ЛицевойСчет;
элт.СУМ = Сумма;
элт.ФИО = СтруктураПлатежа[НомерВреестреФио];
масс.Добавить(элт);
КонецЦикла;
КонецЕсли;
ОбъектФормы = ВладелецФормы.Объект;
//заполняем объект данными
ЗапНаСервере(ОбъектФормы,масс,мПар);
КопироватьДанныеФормы(ОбъектФормы, ВладелецФормы.Объект);
ВладелецФормы.ОбновитьОтображениеДанных();
//включаем флажок род платы
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ВладелецФормы.Элементы, "РасшифровкаПлатежаРебенок", "Видимость", ИСТИНА);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ВладелецФормы.Элементы, "РасшифровкаПлатежаКонтрагент", "Видимость", НЕ ИСТИНА);
ВладелецФормы.Записать();
//заполняем бух операцию
запбо(ОбъектФормы,мПар2);
//обновляем данные
ВладелецФормы.Прочитать();
ВладелецФормы.ОбновитьОтображениеДанных();
~НеВыбралиФайл:
КонецПроцедуры
&НаСервере
Процедура ЗапНаСервере(Объект, мас, пар)
ссылка = Документы.КассовоеПоступление.НайтиПоНомеру(Объект.Номер,ТекущаяДата());
//Сообщить(ссылка);
обе = ссылка.ПолучитьОбъект();
ОбъектНазначения = Объект;
ОбъектНазначения.РодительскаяПлата = Истина;
ОбъектНазначения.КорСчет = ПланыСчетов.ЕПСБУ.НайтиПоКоду(пар.мКорСч);
ОбъектНазначения.ИФО = Справочники.ИсточникиФинансовогоОбеспечения.НайтиПоНаименованию(пар.мИстФин);
обс = 0;
ОбъектНазначения.РасшифровкаПлатежа.Очистить();
для каждого м из мас цикл
стр = ОбъектНазначения.РасшифровкаПлатежа.Добавить();
стр.СуммаВал = м.СУМ;
обс = обс + м.СУМ;
//-----------------------------Пытаемся определить ребенка по ЛИЦЕВОМУ-------------
//Сообщить(м.ЛС);
стр.Ребенок = Справочники.Дети.НайтиПоКоду(м.ЛС);
//Сообщить(Строка(стр.Ребенок) + " = " + Строка(стр.Ребенок.Организация));
стр.Контрагент = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(стр.Ребенок, "Контрагент");
если стр.Ребенок.Пустая() или стр.Ребенок.Организация <> ОбъектНазначения.Организация тогда
стр.Ребенок = Справочники.Дети.НайтиПоКоду("Х"+Прав(м.ЛС,9));//тут пробуем русскую Х
стр.Контрагент = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(стр.Ребенок, "Контрагент");
//Сообщить(Строка(стр.Ребенок) + " \ " + стр.Ребенок.Организация);
если стр.Ребенок.Организация <> ОбъектНазначения.Организация тогда
стр.Ребенок=Неопределено;
стр.Контрагент=Неопределено;
КонецЕсли;
конецесли;
//---------------------------------------------------------------------------------
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| СоставГруппДДУ.ГруппаДетскогоУчреждения КАК ГруппаДетскогоУчреждения,
| СоставГруппДДУ.СтавкаОплаты КАК СтавкаОплаты,
| СоставГруппДДУ.Льгота КАК Льгота,
| СоставГруппДДУ.Договор КАК Договор,
| СоставГруппДДУ.Период КАК Период,
| СоставГруппДДУ.Актуальность КАК Актуальность
|ИЗ
| РегистрСведений.СоставГруппДДУ КАК СоставГруппДДУ
|ГДЕ
| СоставГруппДДУ.Ребенок = &Ребенок
|
|УПОРЯДОЧИТЬ ПО
| Период";
Запрос.УстановитьПараметр("Ребенок", стр.Ребенок);
РезультатЗапроса = Запрос.Выполнить();
р = РезультатЗапроса.Выбрать();
р.Следующий();
//Сообщить(р.Договор);
стр.Договор = р.Договор;
стр.ИсточникСредств = Справочники.ИсточникиСредств.НайтиПоКоду(пар.мИстСр).Ссылка;
если стр.Ребенок.Пустая() или стр.Ребенок=Неопределено тогда
стр.Примечание = "не найдено! ФИО = "+м.ФИО+" "+ТекущаяДата();
Сообщить(стр.Примечание);
иначе
стр.Примечание = "импорт реестра успешен "+ТекущаяДата();
КонецЕсли;
стр.КФО = Перечисления.КВД.Внебюджет;
стр.КБКНазначениеПлатежа = Справочники.КлассификационныеПризнакиСчетов.НайтиПоКоду(пар.мКБКназн).Ссылка;
стр.КОСГУНазначениеПлатежа = Справочники.КОСГУ.НайтиПоКоду(пар.мКОСГУназн).Ссылка;
конеццикла;
ОбъектНазначения.СуммаДокументаВВалюте=обс;
КонецПроцедуры
&НаСервере
Процедура запбо(Объект,пар)
ссылка = Документы.КассовоеПоступление.НайтиПоНомеру(Объект.Номер,ТекущаяДата());
//Сообщить(ссылка);
обе = ссылка.ПолучитьОбъект();
то = Справочники.ТиповыеОперации.НайтиПоНаименованию("Поступление родительской платы");//тип операции
ректип = Справочники.ТиповыеОперации.ДополнительныеРеквизитыТиповойОперации(то);
ДополнительныеРеквизиты = Новый Структура("СчетПоступления", ПланыСчетов.ЕПСБУ.НайтиПоКоду(пар.мСчПост));
ДополнительныеРеквизиты.Вставить("КПС_20110",Справочники.КлассификационныеПризнакиСчетов.НайтиПоКоду(пар.КПС_20110).Ссылка);
ДополнительныеРеквизиты.Вставить("ПроводкиИсполненияПлана",пар.ПроводкиИсполненияПлана);
БухгалтерскиеОперацииСервер.ДобавитьДанныеДляПроведения(обе,то,ДополнительныеРеквизиты,Ложь);
обе.Записать(РежимЗаписиДокумента.Запись);
КонецПроцедуры
&НаСервере
Функция ИщемТО()
Возврат Справочники.ТиповыеОперации.НайтиПоНаименованию("Поступление родительской платы");
КонецФункции Показать(16) заменила все
теперь при отладке снова ошибки
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(94,18)}: Переменная не определена (ОбщегоНазначения)
стр.Контрагент = <<?>>ОбщегоНазначения.ЗначениеРеквизитаОбъекта(стр.Ребенок, "Контрагент"); (Проверка: Сервер)
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(97,18)}: Переменная не определена (ОбщегоНазначения)
стр.Контрагент = <<?>>ОбщегоНазначения.ЗначениеРеквизитаОбъекта(стр.Ребенок, "Контрагент"); (Проверка: Сервер)
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(155,1)}: Переменная не определена (БухгалтерскиеОперацииСервер)
<<?>>БухгалтерскиеОперацииСервер.ДобавитьДанныеДляПроведения(обе,то,ДополнительныеРеквизиты,Ложь); (Проверка: Сервер)
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(38,20)}: Переменная не определена (СтроковыеФункцииКлиентСервер)
СтруктураПлатежа = <<?>>СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаРеестра,";"); (Проверка: Тонкий клиент)
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(60,1)}: Переменная не определена (ОбщегоНазначенияКлиентСервер)
<<?>>ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( (Проверка: Тонкий клиент)
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(62,1)}: Переменная не определена (ОбщегоНазначенияКлиентСервер)
<<?>>ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы( (Проверка: Тонкий клиент)
потому что сейчас все работает....
при этом сам документ формируется без ошибок
я скачал ваш файл, загрузил его в 1с согласно инструкции, потом импортировал ваш файл реестра в кассовое.
никаких проблем.
вытерпили меня
а еще вопрос? мне надо в регистрах сведений по детям поменять плательщика и ставки
из бгу 1.0 эти реквизиты не перенеслись
детей много 4000 т. чел каждого переделать , очень хлопотно
подскажи как лучше сделать?
может какая обработка есть у вас
вообще не могло не перенестись....
а что значит поменять плательщика?
теоретически обработку написать можно - но надо смотреть более конкретно задание.
делать какой то отбор по детям и всем ставить такого то контрагента и такую то ставку?
теоретически можно
я попробую, если что выложу здесь.
сейчас доделываю обработку выгрузки реестров для сбербанка
делает csv для того что бы загружать в клиент-банк
а она есть только в садиках!
в школах есть только расчеты по платным услугам.
спасибо вам за отклик я нашла в бгу помощник изменения параметров по детям
там все есть и изменение плательщика и изменения ставок
запрятали так, что трудно найти
спасибо вам
есть еще задача по загрузке реестра налоговых поступлений из суфд для казенных учреждений
было бы очень здорово сделать эту обработку
может решите эту проблему
спасибо
разобралась
договор подтягивается к контрагентам
там сумма в документе вставала только как сумма в валюте
добавила
для каждого м из мас цикл
стр = ОбъектНазначения.РасшифровкаПлатежа.Добавить();
стр.СуммаВал = м.СУМ;
стр.Сумма = м.СУМ;
обс = обс + м.СУМ;
//и вот здесь
конеццикла;ОбъектНазначения.СуммаДокументаВВалюте = обс;
ОбъектНазначения.СуммаДокумента = ОбъектНазначения.СуммаДокументаВВалюте;
КонецПроцедуры
тогда все работает
а про ту задачу с загрузкой из суфд...есть пример файла который надо загрузить?
и в какой документ?
адаптировать к разной длине можно конечно, однако род плата есть только в садах, что именно вы планируете загружать в ЦБ?
так же можете показать форматы ваших файлов поступлений, я помогу
соглашение 5с.pdf
353861873714 или 000000000004715
далее файл реестра по идее должен содержать данные по одному учреждению
у вас почему то разные как я вижу в одном реестре?
у нас тоже централизованная бухгалтерия, но детей ведем по учреждениям.
у нас 31 детский сад.
описание структуры видел, сейчас вопрос пока только по тому какие именно у вас лицевые счета.
там поправил эти строки
//НАСТРОЙКА ОСНОВНЫХ ПАРАМЕТРОВ
НомерВреестреЛС = 5;
НомерВреестреСум = 11;
НомерВреестреФио = 6;
ДлинаКодаЛс=15;
Если истина тогда //Найти(ФайлРеестра,"\реестр")<>0 тогда
..........
сам лицевой у вас получается просто ЛицевойСчет = СтруктураПлатежа[НомерВреестреЛС];
проверьте все ли работает.
у меня ваши файлы прочитались.
если что пишите
Выгрузка из Сбербанка: 03-05-2023;12-52-27;9013;9013999V;603324699897;177000005134;МАМЕДОВА ДАРЬЯ;МУНИЦИПАЛЬНОЕ БЮДЖЕТНОЕ ДОШКОЛЬНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ?ДЕТСКИЙ САД ОБЩЕРАЗВИВАЮЩЕГО ВИДА № 177?;ДОШКОЛЬНОЕ ВОСПИТАНИЕ;92400000000000000131;20701000;МАМЕДОВА ИРАДА ВАХИД КЫЗЫ;1864,32;1864,32;0,00
03-05-2023;17-22-21;9013;9013999V;453987685002;17700013189;ГЛЕБОВ БОГДАН;МУНИЦИПАЛЬНОЕ БЮДЖЕТНОЕ ДОШКОЛЬНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ?ДЕТСКИЙ САД ОБЩЕРАЗВИВАЮЩЕГО ВИДА № 177?;ДОШКОЛЬНОЕ ВОСПИТАНИЕ;92400000000000000131;20701000;ГЛЕБОВА ВАЛЕРИЯ ГЕННАДЬЕВНА;5659,40;5659,40;0,00
=2;7523,72;7523,72;0,00;257678;04-05-2023
03-05-2023;17-22-21;9013;9013999V;453987685002;17700013189;ГЛЕБОВ БОГДАН;МУНИЦИПАЛЬНОЕ БЮДЖЕТНОЕ ДОШКОЛЬНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ?ДЕТСКИЙ САД ОБЩЕРАЗВИВАЮЩЕГО ВИДА № 177?;ДОШКОЛЬНОЕ ВОСПИТАНИЕ;92400000000000000131;20701000;ГЛЕБОВА ВАЛЕРИЯ ГЕННАДЬЕВНА;5659,40;5659,40;0,00
=2;7523,72;7523,72;0,00;257678;04-05-2023
что именно тут лицевой счет?
длин л\с - но в идеале л\с должны быть шаблонными, мы в свое время приводили их к одному виду.
а так обработка универсальная и может формировать документ кассового поступления
когда обновлю проверю, возможно параметры обработки надо поправить будет
Ошибка
<<?>>ЗапНаСервере(ОбъектФормы,масс,мПар); (Проверка: Тонкий клиент)
{ВнешняяОбработка.ЗагрузкаПлатежей.Форма.Форма.Форма(71,5)}: Процедура или функция с указанным именем не определена (запбо)
<<?>>запбо(ОбъектФормы,мПар2); (Проверка: Тонкий клиент)
&НаКлиенте
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
//НАСТРОЙКА ОСНОВНЫХ ПАРАМЕТРОВ
НомерВреестреЛС = 4;
НомерВреестреСум = 13;
НомерВреестреФио = 11;
ДлинаКодаЛс=13;
мПар = новый Структура("мКорСч,мИстФин,мИстСр,мКБКназн,мКОСГУназн");
//-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ ТАБЛИЧНОЙ ЧАСТИ---------------
мПар.мКорСч= "205.00";
мПар.мИстФин= "Местный бюджет";
мПар.мИстСр= "06"; //средства юрлиц
мПар.мКБКназн = "07010000000000130";
мПар.мКОСГУназн = "131";
//--------------------------------------------------------------------------
//-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ БУХ. ОПЕРАЦИИ-----------------
мПар2 = новый Структура("мСчПост,КПС_20110,ПроводкиИсполненияПлана");
мПар2.мСчПост = "201.11";
мПар2.КПС_20110 = "00000000000000000";
мПар2.ПроводкиИсполненияПлана = Истина; //формировать проводки по исполнению плана доходов?
//--------------------------------------------------------------------------
Диалог = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Если Диалог.Выбрать() Тогда
ФайлРеестра = Диалог.ПолноеИмяФайла;
иначе
Перейти ~НеВыбралиФайл;
КонецЕсли;
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ФайлРеестра);
масс = новый массив;
Если истина тогда //Найти(ФайлРеестра,"\реестр")<>0 тогда //файл реестра сбера У НАС ВСЕГДА НАЧИНАЕТСЯ С 01_, поправьте если у вас не так - на ваш случай
Для Сч = 1 по Текст.КоличествоСтрок() Цикл
СтрокаРеестра = Текст.ПолучитьСтроку(Сч);
СтруктураПлатежа = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаРеестра,";");
//проверяем дошли до конца файла или нет
Если Сч = Текст.КоличествоСтрок() Тогда // (СтруктураПлатежа.Количество() = 6 или СтруктураПлатежа.Количество() = 7) И
Прервать;
КонецЕсли;
ЛицевойСчет = СтруктураПлатежа[НомерВреестреЛС];
//если СтрДлина(ЛицевойСчет)>ДлинаКодаЛс тогда
// ЛицевойСчет=Лев(ЛицевойСчет,10);
//конецесли;
Назначение = СтруктураПлатежа[9]; //не используется
Сумма = Число(СтруктураПлатежа[НомерВреестреСум]);
элт = Новый Структура("ЛС,СУМ,ФИО");
элт.ЛС = ЛицевойСчет;
элт.СУМ = Сумма;
элт.ФИО = СтруктураПлатежа[НомерВреестреФио];
масс.Добавить(элт);
КонецЦикла;
КонецЕсли;
ОбъектФормы = ВладелецФормы.Объект;
//заполняем объект данными
ЗапНаСервере(ОбъектФормы,масс,мПар);
КопироватьДанныеФормы(ОбъектФормы, ВладелецФормы.Объект);
ВладелецФормы.ОбновитьОтображениеДанных();
//включаем флажок род платы
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ВладелецФормы.Элементы, "РасшифровкаПлатежаРебенок", "Видимость", ИСТИНА);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ВладелецФормы.Элементы, "РасшифровкаПлатежаКонтрагент", "Видимость", НЕ ИСТИНА);
ВладелецФормы.Записать();
//заполняем бух операцию
запбо(ОбъектФормы,мПар2);
//обновляем данные
ВладелецФормы.Прочитать();
ВладелецФормы.ОбновитьОтображениеДанных();
~НеВыбралиФайл:
КонецПроцедуры ПоказатьПроцедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначения) Экспорт
//НАСТРОЙКА ОСНОВНЫХ ПАРАМЕТРОВ
НомерВреестреЛС = 4;
НомерВреестреСум = 13;
НомерВреестреФио = 11;
ДлинаКодаЛс=13;
мПар = новый Структура("мКорСч,мИстФин,мИстСр,мКБКназн,мКОСГУназн");
//-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ ТАБЛИЧНОЙ ЧАСТИ---------------
мПар.мКорСч= "205.00";
мПар.мИстФин= "Местный бюджет";
мПар.мИстСр= "06"; //средства юрлиц
мПар.мКБКназн = "07010000000000130";
мПар.мКОСГУназн = "131";
//--------------------------------------------------------------------------
//-----------------------НАСТРОЙКИ ЗАПОЛНЕНИЯ БУХ. ОПЕРАЦИИ-----------------
мПар2 = новый Структура("мСчПост,КПС_20110,ПроводкиИсполненияПлана");
мПар2.мСчПост = "201.11";
мПар2.КПС_20110 = "00000000000000000";
мПар2.ПроводкиИсполненияПлана = Истина; //формировать проводки по исполнению плана доходов?
//--------------------------------------------------------------------------
Диалог = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Если Диалог.Выбрать() Тогда
ФайлРеестра = Диалог.ПолноеИмяФайла;
иначе
Перейти ~НеВыбралиФайл;
КонецЕсли;
Текст = Новый ТекстовыйДокумент;
Текст.Прочитать(ФайлРеестра);
масс = новый массив;
Если истина тогда //Найти(ФайлРеестра,"\реестр")<>0 тогда //файл реестра сбера У НАС ВСЕГДА НАЧИНАЕТСЯ С 01_, поправьте если у вас не так - на ваш случай
Для Сч = 1 по Текст.КоличествоСтрок() Цикл
СтрокаРеестра = Текст.ПолучитьСтроку(Сч);
СтруктураПлатежа = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаРеестра,";");
//проверяем дошли до конца файла или нет
Если Сч = Текст.КоличествоСтрок() Тогда // (СтруктураПлатежа.Количество() = 6 или СтруктураПлатежа.Количество() = 7) И
Прервать;
КонецЕсли;
ЛицевойСчет = СтруктураПлатежа[НомерВреестреЛС];
//если СтрДлина(ЛицевойСчет)>ДлинаКодаЛс тогда
// ЛицевойСчет=Лев(ЛицевойСчет,10);
//конецесли;
Назначение = СтруктураПлатежа[9]; //не используется
Сумма = Число(СтруктураПлатежа[НомерВреестреСум]);
элт = Новый Структура("ЛС,СУМ,ФИО");
элт.ЛС = ЛицевойСчет;
элт.СУМ = Сумма;
элт.ФИО = СтруктураПлатежа[НомерВреестреФио];
масс.Добавить(элт);
КонецЦикла;
КонецЕсли;
ОбъектФормы = ВладелецФормы.Объект;
//заполняем объект данными
ЗапНаСервере(ОбъектФормы,масс,мПар);
КопироватьДанныеФормы(ОбъектФормы, ВладелецФормы.Объект);
ВладелецФормы.ОбновитьОтображениеДанных();
//включаем флажок род платы
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ВладелецФормы.Элементы, "РасшифровкаПлатежаРебенок", "Видимость", ИСТИНА);
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(
ВладелецФормы.Элементы, "РасшифровкаПлатежаКонтрагент", "Видимость", НЕ ИСТИНА);
ВладелецФормы.Записать();
//заполняем бух операцию
запбо(ОбъектФормы,мПар2);
//обновляем данные
ВладелецФормы.Прочитать();
ВладелецФормы.ОбновитьОтображениеДанных();
~НеВыбралиФайл:
КонецПроцедуры
какую именно? Процедура ПриОткрытии(Отказ) ??
Далее пара вопросов:
1. Т.к. БГУ для меня в новинку, то вопрос возник как у меня, так и у заказчицы (которая в бухгалтерию детсада тоже впервые попала, после опыта в промышленных предприятиях) - в типовом функционале это не реализовали никак? Ваша обработка оказалась первым, что попалось при поиске в яндексе на тему.
2. Планирую дорабатывать, в частности повыносить по максимуму настройки, в доступный пользователям вид. Если результат окажется вменяемым не будете возражать, если его тоже опубликую?
если доработки будут существенными то публикуйте, главное не нарушайте правила инфостарта.
также посмотрите мою обработку выгрузки в сбербанк, она очень полезна!
ну и другие посмотрите!
НовыйДокументПоступления = Документы.КассовоеПоступление.СоздатьДокумент();
НовыйДокументПоступления.ВалютаДокумента = РезультатПоискаВалюты[0].Ссылка;
НовыйДокументПоступления.РодительскаяПлата = Истина;
НовыйДокументПоступления.КорСчет = РезультатПоискаКорСчета[0].Ссылка;
НовыйДокументПоступления.СуммаДокументаВВалюте=1000.0;
НовыйДокументПоступления.Контрагент = РезультатПоискаКонтрагента[0].Ссылка;
НовыйДокументПоступления.Плательщик = РезультатПоискаКонтрагента[0].Ссылка;
НовыйДокументПоступления.СчетКонтрагента = РезультатПоискаСчетаКонтрагента[0].Ссылка;
НовыйДокументПоступления.Организация = РезультатПоискаОрганизации[0].Ссылка;
НовыйДокументПоступления.Дата = ТекущаяДата();
СтрРасшифровки = НовыйДокументПоступления.РасшифровкаПлатежа.Добавить();
СтрРасшифровки.СуммаВал = 1000.0;
СтрРасшифровки.КФО = Перечисления.КВД.Внебюджет;
СтрРасшифровки.ИсточникСредств = РезультатПоискаИсточникиСредств[0].Ссылка;
СтрРасшифровки.КОСГУНазначениеПлатежа = РезультатПоискаКОСГУ[0].Ссылка;
СтрРасшифровки.Сумма = 1000.0;
СтрРасшифровки.Контрагент = РезультатПоискаКонтрагента[0].Ссылка;
СтрРасшифровки.СчетРасчетов = РезультатПоискаСчетРасчетов[0].Ссылка;
СтрРасшифровки.СпособПогашенияЗадолженности = Перечисления.СпособыПогашенияЗадолженности.Автоматически;
СтрРасшифровки.ДопКлассификация = РезультатПоискаДопКлассификация[0].Ссылка;
ДополнительныеРеквизиты = Новый Структура("СчетПоступления", РезультатПоискаСчетПоступления[0].Ссылка);
ДополнительныеРеквизиты.Вставить("КПС_20110",РезультатПоискаКПС_20110[0].Ссылка);
ДополнительныеРеквизиты.Вставить("ПроводкиИсполненияПлана",Истина);
БухгалтерскиеОперацииСервер.ДобавитьДанныеДляПроведения(НовыйДокументПоступления,РезультатПоискаТиповыеОперации,ДополнительныеРеквизиты,Ложь);
НовыйДокументПоступления.Записать(РежимЗаписиДокумента.Запись); ПоказатьПри сохранении выдаёт ошибку:
Ошибка при вызове метода контекста (Записать)
{ВнешняяОбработка.ФормированиеКассовыхПоступленийВФоне(199)}: НовыйДокументПоступления.Записать(РежимЗаписиДокумента.Запись);
{ВнешняяОбработка.ФормированиеКассовыхПоступленийВФоне(4)}: СформироватьНаСервере();
по причине:
Ошибка при выполнении обработчика - 'ПриЗаписи'
по причине:
{ОбщийМодуль.ОбщегоНазначения.Модуль(4207)}: Метод объекта не обнаружен (Метаданные)
НовыйДокументПоступления.Записать(РежимЗаписиДокумента.Запись);
по причине:
Ошибка при выполнении обработчика - 'ПриЗаписи'
по причине:
{ОбщийМодуль.ОбщегоНазначения.Модуль(4207)}: Метод объекта не обнаружен (Метаданные)
Метод объекта не обнаружен (Метаданные)
{ОбщийМодуль.ОбщегоНазначения.Модуль(4207)}: Возврат Ссылка.Метаданные().ПолноеИмя();
{ОбщийМодуль.ОбщегоНазначения.Модуль(4123)}: ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&ИмяТаблицы", ИмяТаблицыПоСсылке(ПроверяемаяСсылка));
{ОбщийМодуль.БухгалтерскиеОперацииСервер.Модуль(2102)}: Если ЗначениеЗаполнено(ТиповаяОперация)
{ОбщийМодуль.БухгалтерскиеОперацииСервер.Модуль(2007)}: Если НЕ ПроверитьНеобходимостьДействийПриЗаписиОбъекта(ТекущийОбъект) Тогда
{ОбщийМодуль.БухгалтерскиеОперацииСервер.Модуль(1732)}: ПриЗаписиОбъекта(Источник, Отказ); ПоказатьЕсли проблемы останутся - давайте по удаленке посмотрю, или крепите сюда свой вариант
я проверю на своей базе, но тогда подробнее опишите что вы хотите получить.
# 28212 ;Номер реестра
# 300.00 ;Сумма реестра
# 0.00 ;В том числе пеня
# 9.00 ;Удержанная сумма
# 291.00 ;Сумма к перечеслению
# 1 ;Число записей
# 8585 ;Код агента
# 19 ;Номер услуги
# 06/01/2025 00:00:00 ;Дата формирования реестра
# 04/01/2025 09:58:15 ;Начало диапазона дат документов, входящих в реестр
# 04/01/2025 09:58:15 ;Конец диапазона дат документов, входящих в реестр
#SIGN:WRONG <_PAYDAY:04/01/2025> < TYPE_CARD:0000000000 > < За детский сад> <ВИД ПЛАТЕЖА: МКДОУ ДС 26> <ОКАТО: > <КБК: 90611301994040000130> ;Примечание
04/01/2025;1321860;300.00;6338:МАМИЖЕВ ШАХИМ АЛИЕВИЧ:1261752
Получаем реестр от банка в таком виде
17-03-2025;00-00-47;0002;0002999V;951143877053;000090;03;МКДОУ ДС 6;КОЧКАРОВА САМИЯ РУСТАМОВНА;КОЧКАРОВА САМИЯ РУСТАМОВНА;ЗА МАРТ 2025 Г., КОЧКАРОВА САМИЯ РУСТАМОВНА, МКДОУ Д/С №6 "РУЧЕЁК" Г.ЧЕРКЕССКА, ДОГОВОР НА СОДЕРЖАНИЕ РЕБЕНКА В ДДУ ОТ 01.12.2021 00000 № 405;91701000;90611301994040000130;409,28;397,00;12,28;5;
17-03-2025;08-06-05;8585;8585999V;256523144116;000112;02;МКДОУ ДС 5;БЫТДАЕВА МЕДИНА ХАЛИЛОВНА;БЫТДАЕВА МЕДИНА ХАЛИЛОВНА;ЗА МАРТ 2025 Г., БЫТДАЕВА МЕДИНА ХАЛИЛОВНА, МКДОУ Д/С №5 "ОРЕШЕК" Г.ЧЕРКЕССКА, ДОГОВОР НА СОДЕРЖАНИЕ РЕБЕНКА В ДДУ ОТ 14.10.2024 00000 № 264;91701000;90611301994040000130;363,80;352,89;10,91;5;
Расшифровка
17-03-2025(Дата платежа);00-00-47(Время платежа);0002(Номер отделения);0002999V(Номер кассира/УС/СБОЛ);951143877053(Уникальный код операции в ЕПС);000090)(Лицевой счет);03(Код услуги);МКДОУ ДС 6(Услуга);КОЧКАРОВА САМИЯ РУСТАМОВНА(ФИО ребенка);КОЧКАРОВА САМИЯ РУСТАМОВНА(ФИО плательщика);ЗА МАРТ 2025 Г., КОЧКАРОВА САМИЯ РУСТАМОВНА, МКДОУ Д/С №6 "РУЧЕЁК" Г.ЧЕРКЕССКА, ДОГОВОР НА СОДЕРЖАНИЕ РЕБЕНКА В ДДУ ОТ 01.12.2021 00000 № 405(Назначение);91701000(ОКТМО);90611301994040000130(КБК);409,28(Сумма операции);397,00(Сумма перевода);12,28(Сумма комиссии банку);5(Канал приема платежа);
Получаем реестр от банка в таком виде
17-03-2025;00-00-47;0002;0002999V;951143877053;000090;03;МКДОУ ДС 6;КОЧКАРОВА САМИЯ РУСТАМОВНА;КОЧКАРОВА САМИЯ РУСТАМОВНА;ЗА МАРТ 2025 Г., КОЧКАРОВА САМИЯ РУСТАМОВНА, МКДОУ Д/С №6 "РУЧЕЁК" Г.ЧЕРКЕССКА, ДОГОВОР НА СОДЕРЖАНИЕ РЕБЕНКА В ДДУ ОТ 01.12.2021 00000 № 405;91701000;90611301994040000130;409,28;397,00;12,28;5;
17-03-2025;08-06-05;8585;8585999V;256523144116;000112;02;МКДОУ ДС 5;БЫТДАЕВА МЕДИНА ХАЛИЛОВНА;БЫТДАЕВА МЕДИНА ХАЛИЛОВНА;ЗА МАРТ 2025 Г., БЫТДАЕВА МЕДИНА ХАЛИЛОВНА, МКДОУ Д/С №5 "ОРЕШЕК" Г.ЧЕРКЕССКА, ДОГОВОР НА СОДЕРЖАНИЕ РЕБЕНКА В ДДУ ОТ 14.10.2024 00000 № 264;91701000;90611301994040000130;363,80;352,89;10,91;5;
Расшифровка
17-03-2025(Дата платежа);00-00-47(Время платежа);0002(Номер отделения);0002999V(Номер кассира/УС/СБОЛ);951143877053(Уникальный код операции в ЕПС);000090)(Лицевой счет);03(Код услуги);МКДОУ ДС 6(Услуга);КОЧКАРОВА САМИЯ РУСТАМОВНА(ФИО ребенка);КОЧКАРОВА САМИЯ РУСТАМОВНА(ФИО плательщика);ЗА МАРТ 2025 Г., КОЧКАРОВА САМИЯ РУСТАМОВНА, МКДОУ Д/С №6 "РУЧЕЁК" Г.ЧЕРКЕССКА, ДОГОВОР НА СОДЕРЖАНИЕ РЕБЕНКА В ДДУ ОТ 01.12.2021 00000 № 405(Назначение);91701000(ОКТМО);90611301994040000130(КБК);409,28(Сумма операции);397,00(Сумма перевода);12,28(Сумма комиссии банку);5(Канал приема платежа);
Документ. Кассовые поступление. Оплата за обучение студентов.
где у вас в реестре идентификатор плательщика или ребенка?
Есть возможность использовать ФИО как идентификатор ?
там есть поле лицевой счет - это и есть уникальный номер контагента в базе 1С
Скачали обработку , ошибки :
не найдено! ФИО = 1 ГРУППА 223 09.09.2025 15:21:16
Можете помочь настроить под наш файл
Ошибка при вызове метода контекста (ПолучитьОбъект)
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(82)}:обе = ссылка.ПолучитьОбъект();
{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(60)}:ЗапНаСервере(ОбъектФормы,масс,мПар);
{ОбщийМодуль.ДополнительныеОтчетыИОбработкиКлиент.Модуль(313)}:ФормаВнешнегоОбъекта.ВыполнитьКоманду(ПараметрыВызоваСервера.ИдентификаторКоманды, ПараметрыВызоваСервера.ОбъектыНазначения);
{ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(290)}:ВыполнитьОбработкуОповещения(Обработчик, ПараметрКоманды);
{ОбщийМодуль.ПодключаемыеКомандыКлиент.Модуль(515)}:ПродолжитьВыполнениеКоманды(Контекст);
{ОбщийМодуль.ПодключаемыеКомандыГлобальный.Модуль(13)}:ПодключаемыеКомандыКлиент.ПослеЗаписиПродолжение();
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Элемент не выбран!
[ОшибкаИспользованияВстроенногоЯзыка]
опишите ситуацию, если до обновления релиза работало то и сейчас должно
но обработка сама ставит галочку и прогружает реестр!
Все работает!
все меняется:))
покупала вашу обработку по поступлении род платы на счета в органах казначейства
теперь у нас ЕБП
нужна новая обработка
10 детских садов в управлении образования
вот пример лицевого счета Детский сад №45 л/с 803ШLЩ31000
загрузка Сбербанк
пример файла из Сбера
20-03-2026;21-47-42;8611;8611999V;205369091211;КАМЕНСКАЯ АННА ВИКТОРОВНА;КАМЕНСКАЯ МАЙЯ ПАВЛОВНА;РОДИТЕЛЬСКАЯ ПЛАТА ЗА МАРТ 2026 . КАМЕНСКАЯ МАЙЯ ПАВЛОВНА , Л\С Х476902;17646101;00000000000000000130;3035,00;3035,00;0,00;5;
=1;3035,00;3035,00;0,00;977580;23-03-2026
завтра займусь
в модуле формы
//НАСТРОЙКА ОСНОВНЫХ ПАРАМЕТРОВ
//включаем флажок род платы
ОбщегоНазначенияКлиентСервер.УстановитьСвойствоЭлементаФормы(ВладелецФормы.Элементы, "РасшифровкаПлатежаГруппаПоРеестру", "Видимость", Истина);
ВладелецФормы.Объект.ПоРеестру = Истина;
НомерВреестреЛС = 6;
НомерВреестреСум = 16;
НомерВреестреФио = 8;
ДлинаКодаЛс=10; Показатьвот эти номера правите и по идее все заработает!
на моей базе файл вашего офрмата обрабатывается! ну только у меня детей ваших нет!
пробуйте.
мне надо ввести КПС 07011000004003130 вот такой постоянный
в реестре много строк, не хотелось бы каждую вводить
в первую очередь поправьте эти параметры под ваши порядковые номера (индексация с нуля)
НомерВреестреЛС = 5;
НомерВреестреСум = 10;
НомерВреестреФио = 6;
ДлинаКодаЛс=10;
для вас вроде эти индексы будут как я выше указал, потом найдите код (он чуть ниже)
Если СтрДлина(СтруктураПлатежа[НомерВреестреЛС])>=7 тогда
ЛицевойСчет = Прав(СтруктураПлатежа[НомерВреестреЛС],7);//под требования Ashny
Иначе
Сообщить("Лицевой счет не опознан " + СтрокаРеестра);
ЛицевойСчет = ""; //ВЫ МОЖЕТЕ НАПИСАТЬ ТУТ ЛицевойСчет=СтруктураПлатежа[НомерВреестреЛС] если хотите чтобы пробовало заполняться В ЛЮБОМ СЛУЧАЕ
конецесли; и замените его просто на (ну это если у вас в базе коды лс реально начинаются с нулей)
Если СтрДлина(СтруктураПлатежа[НомерВреестреЛС])>=7 тогда
ЛицевойСчет = СтруктураПлатежа[НомерВреестреЛС];
Иначе
Сообщить("Лицевой счет не опознан " + СтрокаРеестра);
ЛицевойСчет = "";
конецесли; сохраните, установите заново обработку в базу
и можно пробовать запускать, если в базе коды хранятся без лидирующих нулей то придется еще немного доработать,
пробуйте.
Рейтинг: 43
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 1814669
Создание 22.02.23 12:30
Обновление 15.04.26 11:36
Просмотры 8548
Загрузки 72
Рейтинг
3
Комментарии 183
Код открыт Да
Рубрики Банковские операции Обмен с интернет-банком Файловый обмен (TXT, XML, DBF), FTP
Кому
Разработчик
,
Бухгалтер
,
Пользователь
Тип файла Внешняя обработка (ert,epf)
Платформа 1С 8.3
Конфигурация 1С:Бухгалтерия государственного учреждения
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета
Бухгалтерский учет
,
Бюджетный учет
Доступ к файлу Абонемент ($m)