powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Как по проводке получить выписку из банка?
14 сообщений из 14, страница 1 из 1
Как по проводке получить выписку из банка?
    #35870972
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1С 7.7.27
Есть поступления налом, и безналом, а в выписках из банка указано поле НазначениеПлатежа
На основании выписок (я так понимаю) были сделаны проводки.

Есть внешний ERT для выгрузки данных о поступивших платежах.
В ERT организован цикл:
Код: plaintext
1.
2.
3.
4.
Опер = СоздатьОбъект("Операция");
Опер.ВыбратьОперацииСПроводками(ВыбНачПериода, ВыбКонПериода, Сч77_1И,, 2 );
Пока Опер.ПолучитьПроводку() =  1  Цикл
....
Нужно для тех операций, у которых Опер.Документ.Вид()="Выписка"
получить поле НазначениеПлатежа из выписки
(или см. Тему)
КАК?

-----
Начинаю разбираться с 1С...
...
Рейтинг: 0 / 0
Как по проводке получить выписку из банка?
    #35871121
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey Ts,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Опер = СоздатьОбъект("Операция");
Опер.ВыбратьОперацииСПроводками(ВыбНачПериода, ВыбКонПериода, Сч77_1И,, 2 );
Пока Опер.ПолучитьПроводку() =  1  Цикл                                          

    // получить документ проводки
    ОперДок=Опер.Документ; 	
    // определить вид дркумента
    Если ОперДок.Вид()="Выписка" Тогда 
        // получить нужную строку документа
        ОперДок.ПолучитьСтрокуПоНомеру(Опер.НомерСтрокиДокумента()); 
        // получить нужный реквизит строки документа
        Сообщить(ОперДок.НазначениеПлатежа);  
    КонецЕсли;
....

...
Рейтинг: 0 / 0
Как по проводке получить выписку из банка?
    #35871235
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров Александр, спасибо

Однако пулучаю пустые строки. Что-то не так.
...
Рейтинг: 0 / 0
Как по проводке получить выписку из банка?
    #35871246
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а НомерСтрокиДокумента() = 0
...
Рейтинг: 0 / 0
Как по проводке получить выписку из банка?
    #35871278
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey Ts,

хорошо бы название релиз конфы услышать.
Судя по всему у Вас строки документов к проводке не привязываются.
Проверьте в модуле вашего Документ.Выписка в ОбработкаПроведения() есть что-то вида
Код: plaintext
1.
ПривязыватьСтроку(НомерСтроки);
Если нет - то будет несколько сложнее.
...
Рейтинг: 0 / 0
Как по проводке получить выписку из банка?
    #35871321
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров Александр,
насколько я могу видеть, такой строки там нет, хотя есть какая-то функция "СформироватьПроводки" (подозреваю из глобального модуля, а он запаролен)
Скорее всего вы правы.
Что можно сделать?
...
Рейтинг: 0 / 0
Как по проводке получить выписку из банка?
    #35871361
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey Ts,

Ну я сейчас с работы отваливаю уже, где-то через час появлюсь :)
Скажите все-таки конфу и релиз, хотя по фразе "из глобального модуля, а он запаролен" предполагаю какой-либо вид самописки. Раз проводка не привязывается к строке, попробуем несколько вариантов:
Если модуль проведения построен по принципу "одна строка - одна [или N] проводка" должно работать
Код: plaintext
ОперДок.ПолучитьСтрокуПоНомеру(Опер.НомерПроводки()[*N]);
Иначе придется разбирать алгоритм проведения и разбираться на как строится проводка по счету Сч77_1И.
...
Рейтинг: 0 / 0
Как по проводке получить выписку из банка?
    #35871497
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров Александр
Код: plaintext
ОперДок.ПолучитьСтрокуПоНомеру(Опер.НомерПроводки()[*N]);

Да, это помогло без вскрытия конфигурации.
Остался только один вопрос: всегда ли строка в выписке соответствует строке номера проводки?может ли быть, что после проведения проводок бухгалтер что-то сделал/добавил, и соответствие нарушилось?
...
Рейтинг: 0 / 0
Как по проводке получить выписку из банка?
    #35871527
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров АлександрAndrey Ts,

Скажите все-таки конфу и релиз,
1С Предприятие, Бух учет ред. 4.5, версия 7.70.484
конфигурация видоизменена под мою контору.
...
Рейтинг: 0 / 0
Как по проводке получить выписку из банка?
    #35871654
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey TsОстался только один вопрос: всегда ли строка в выписке соответствует строке номера проводки?может ли быть, что после проведения проводок бухгалтер что-то сделал/добавил, и соответствие нарушилось?
Для этого и существует ПривязыватьСтроку() . Ее использование гарантирует соответствие, иначе - зависит от алгоритма проведения. Вобщем-то базовый алгоритм обычно не меняется, это что-то типа
Код: plaintext
1.
2.
3.
ВыбратьСтроки();
Пока ПолучитьСтроку()= 1  Цикл
    Операция.НоваяПроводка();
....
поэтому последовательность проводок не изменится. Но могут быть условия по формированию нескольких проводок по одной строке документа, поэтому гарантировать что соответствие не собъется без точного понимания алгоритма проведения нельзя никак.

Открыл сейчас типовой 484-ой релиз - действительно нету ПривязыватьСтроку() :)

C другой строны, "Есть внешний ERT для выгрузки данных о поступивших платежах." - а эти данные действительно необходимо собирать именно по проводкам? В самих документах данных недостаточно?
...
Рейтинг: 0 / 0
Как по проводке получить выписку из банка?
    #35871955
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Недостаточно. Нужно именно поле "НазначениеПлатежа"

А как вариант, можно ли делать отдельный цикл по выпискам?
например что-то вроде (в старом цикле или может как по другому?)
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
   Если Опер.Документ.Вид()="Выписка" Тогда
	всеВыписки.НоваяСтрока();
	всеВыписки.КодВыписки=Опер.Документ;
	всеВыписки.НомерВыписки=Опер.Документ.НомерДок;
	всеВыписки.СуммаПроводки=Опер.Сумма;
	Продолжить;
   КонецЕсли;
(всеВыписки - ТаблицаЗначений)
Но затем нужно как-то убрать повторяющиеся ссылки на выписки и организовать по ним цикл
Я думал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
всеВыписки.Свернуть("КодВыписки","СуммаПроводки");
всеВыписки.ВыбратьСтроки();
Пока всеВыписки.ПолучитьСтроку()= 1  Цикл
  ТекВыписка=всеВыписки.КодВыписки;
  ТекВыписка.ВыбратьСтроки();
  Пока ТекВыписка.ПолучитьСтроку()= 1  Цикл                                      
...
но это не работает.
...
Рейтинг: 0 / 0
Как по проводке получить выписку из банка?
    #35872116
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey TsНедостаточно. Нужно именно поле "НазначениеПлатежа"
А ведь назначение платежа это и есть реквизит документа, а не проводки.

На вскидку:
Вариант1: Добавить в обработку проведения ПривязыватьСтроку(НомерСтроки) в переборе строк и перепровести все выписки. Если ручная правка операций запрещена и последовательности документов выровнены - ничего не съедет (тем не менее забывать про бакап не стоит :) ), но у проводок появится гарантированная ссылка на строку документа.
Вариант2: В обработке проведения копировать содержимое реквизита документа НазначениеПлатежа в например СодержимоеПроводки. Опять таки потребует перепроведения, но необходимая информация будет лежать непосредственно в проводке, обращаться к реквизитам документа будет не надо.
Вариант3: Отказаться от обработки операций и перейти к Запросам. у Выписки, ПКО и РКО есть реквизит КоррСчет, по которому запросом гораздо быстрее можно получить выборку, чем обработка проводок. Не требуется перепроведение, но требуется более глубокий анализ Вашей задачи.
Вариант4: Не залезая в дебри и безо всякого анализа :) - попробуйте так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
всеВыписки.Свернуть("КодВыписки","СуммаПроводки");
док=СоздатьОбъект("Документ.Выписка");
всеВыписки.ВыбратьСтроки();
Пока всеВыписки.ПолучитьСтроку()= 1  Цикл
    док.НайтиДокумент(всеВыписки.КодВыписки);
    ТекВыписка=док.ТекущийДокумент();
    ТекВыписка.ВыбратьСтроки();
    Пока ТекВыписка.ПолучитьСтроку()= 1  Цикл                                      
...
...
Рейтинг: 0 / 0
Как по проводке получить выписку из банка?
    #35873287
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо большое. Разобрался, информации более чем достаточно.
...
Рейтинг: 0 / 0
Как по проводке получить выписку из банка?
    #35882153
Shavminator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте.
У меня такая же проблема, вот только у меня номера строки документа привязаны к проводкам, а атрибут Ит.Операция.Документ.НомерСтроки внутри цикла постоянно равна нулю, в следствии этого не могу добраться до реквизитов табличной части документа через БухгалтерскиеИтоги.
Посоветуйте, пожалуйста, как справится с этим?
Релиз: 1С Предприятие 7.7.025, конфигурация не типовая.

вот код:
Ит=СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.БанковскиеСчета, ВыбСубконто1, 2);
Ит.ВключатьСубсчета(-1, -1);
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "51",,, 3, "Проводка", "С");
Таб.ВывестиСекцию("Заголовок");
Ит.ВыбратьПериоды();
Пока Ит.ПолучитьПериод()=1 Цикл
Наименование=СокрЛП(Ит.Операция.Документ.Контрагент); //вот тут пусто, а в доках есть данные
Основание=СокрЛП(Ит.Операция.Документ.Основание); //тут тоже так.
КонецЦикла;

Заранее благодарю
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Как по проводке получить выписку из банка?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]