Выписки из банка в 1С ERP 2.4

1. AndrewUs 13 10.07.18 15:47 Сейчас в теме
Здравствуйте!
Есть клиент банк. Есть 1С ERP 2.4.
Делаем выгрузку файла выписок из банка. Загружаем в 1С.
В итоге получаем в поле "объект расчетов" в документе платежного поручения не договор, а документ поступления, либо заказ, либо платежное поручение.
В договоре выставлен учет по договорам.
Подскажите, пожалуйста, может кто сталкивался с подобным. Как сделать, чтобы при загрузке выписок из банка всегда автоматически подхватывался договор, а не какой-либо документ?
Спасибо.
user934971; +1 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. AndrewUs 13 11.07.18 07:59 Сейчас в теме
Неужели никто не знает?
3. dyuha 52 11.07.18 08:11 Сейчас в теме
Программе проще найти заказ по сумме, и взять из него условия, чем гадать по какому договору из 100500 отразить поступление. Сформируйте отчет по взаиморасчетам и посмотрите, что он покажет, если в Заказе расчет по договорам.
4. AndrewUs 13 11.07.18 08:15 Сейчас в теме
(3) Но как тогда получается, что у некоторых контрагентов в документ подставляется сразу договор, а у некоторых документы расчета? Наверняка какая-то запись в регистрах есть, которая влияет на это "безобразие".
Раньше, в более ранних версиях 1С, была возможность у контрагента указать основной договор, сейчас же такой возможности я не нахожу.
5. dyuha 52 11.07.18 08:22 Сейчас в теме
Я думаю есть система приоритетов. Если документ по сумме подошел берем его. Если никакой не подошел идем в договоры. Если договор один - берем его. (Дальше фантазии) Если не один, берем тот по которому есть задолженность, Если несколько, берем тот у которого срок задолженности больше.
Надо посмотреть в конфигураторе механизм подбора объекта расчетов. Точно помню были комментарии, но искать лень.
6. AndrewUs 13 11.07.18 08:40 Сейчас в теме
(5) Не помните, комментарии в модуле формы документа? Или где-то в другом месте?
7. dyuha 52 11.07.18 08:56 Сейчас в теме
Обработки.КлиентБанк.ПодготовитьСтрокиВыписки(...) Начинать от туда и по шагам вся логика как на ладони.
8. dyuha 52 11.07.18 09:01 Сейчас в теме
ВзаиморасчетыСервер.ПолучитьТекстЗапросаДокументыРасчетовСКлиентами - Здесь формируются приоритеты.
9. AndrewUs 13 11.07.18 09:23 Сейчас в теме
(8) Наверное не догоняю, но пробежавшись по коду, чего-то явного в данном условии я не увидел.

Если ЗначениеЗаполнено(СтрокаДокумента.ОбъектРасчетов) Тогда
СтрокаДокумента.СтатьяДвиженияДенежныхСредств =
ДенежныеСредстваСервер.СтатьяДвиженияДенежныхСредствОбъектаРасчетов(СтрокаДокумента.ОбъектРасчетов,
СтрокаДокумента.ВидОперации);
КонецЕсли;
10. AndrewUs 13 11.07.18 09:26 Сейчас в теме
Посмотрел по коду, нашел запрос, но тоже ничего мне сказал:

// Договор с контрагентом
        Запрос = Новый Запрос;
        Запрос.Текст = "
        |ВЫБРАТЬ ПЕРВЫЕ 2
        |    ДанныеДоговора.Ссылка КАК Ссылка,
        |    ДанныеДоговора.ТипДоговора КАК ТипДоговора,
        |    ДанныеДоговора.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств
        |
        |ИЗ
        |    Справочник.ДоговорыКонтрагентов КАК ДанныеДоговора
        |
        |ГДЕ
        |    ДанныеДоговора.БанковскийСчет = &БанковскийСчет
        |    И ДанныеДоговора.Контрагент = &Контрагент
        |    И ДанныеДоговора.БанковскийСчетКонтрагента = &БанковскийСчетКонтрагента
        |    И ДанныеДоговора.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКонтрагентов.Действует)
        |";
        
        Запрос.УстановитьПараметр("БанковскийСчет", БанковскийСчет);
        Запрос.УстановитьПараметр("Контрагент", СтрокаДокумента.Контрагент);
        Запрос.УстановитьПараметр("БанковскийСчетКонтрагента", СтрокаДокумента.СчетКонтрагента);
        
        Выборка = Запрос.Выполнить().Выбрать();
        Если Выборка.Количество() = 1 Тогда
            
            Выборка.Следующий();
            
            СтрокаДокумента.ОбъектРасчетов = Выборка.Ссылка;
            СтрокаДокумента.СтатьяДвиженияДенежныхСредств = Выборка.СтатьяДвиженияДенежныхСредств;
            
            Продолжить;
        КонецЕсли;

Показать
11. AndrewUs 13 11.07.18 09:28 Сейчас в теме
Наверное это отвечает за данную фичу:

Если ПроводитьДокументы И РаспределяемаяСумма > 0 Тогда // Подбор объектов расчетов
                
                Для Каждого СтрокаТаблицы Из ТаблицаОстатковРасчетов Цикл
                    
                    Если ЗначениеЗаполнено(СтрокаТаблицы.Заказ) Тогда
                        
                        Если СтрокаТаблицы.Обработано Тогда
                            Продолжить;
                        КонецЕсли;
                        
                        СтрокаРасшифровки = ДокументОбъект.РасшифровкаПлатежа.Добавить();
                        
                        СуммаСтроки = Мин(РаспределяемаяСумма, СтрокаТаблицы.Сумма);
                        РаспределяемаяСумма = РаспределяемаяСумма - СтрокаТаблицы.Сумма;
                        
                        ЗаполнитьЗначенияСвойств(СтрокаРасшифровки, СтрокаТаблицы, , "Сумма");
                        СтрокаРасшифровки.Сумма = СуммаСтроки;
                        
                        СтрокаТаблицы.Обработано = Истина;
                        
                        Если РаспределяемаяСумма <= 0 Тогда
                            Прервать;
                        КонецЕсли;
                        
                    КонецЕсли;
                КонецЦикла;
            КонецЕсли;

Показать
12. dyuha 52 11.07.18 10:12 Сейчас в теме
(11) Запрос формирует таблицу документов, в которой порядок документов определяется логикой запроса. Потом в цикле сумма закрывается документами по порядку, пока не схлопнется. Потом при проведении на основании соглашения/договора формируются проводки в регистр и если расчеты по договорам они и будут по договорам. А заказ будет служить источником договора для расчетов.
13. AndrewUs 13 11.07.18 10:28 Сейчас в теме
(12) Т.е. как я понял, без вмешательства в код никак нельзя программу заставить всегда указывать в поле объект расчетов договор, а если договоров несколько то первый по порядку?
14. dyuha 52 11.07.18 10:36 Сейчас в теме
То, что в документе выбран заказ вместо договора можно увидеть только в документе. Проверьте в проводках. Заказа там не будет (если расчеты по договорам).
15. AndrewUs 13 11.07.18 15:20 Сейчас в теме
(14) В самой выписке указан заказ, либо поступление, либо документ ссылается сам на себя и, естественно при формировании ОСВ авансы не закрываются, потому что в документе оплаты объект расчетов, например, заказ, а в поступлении - договор.
16. AndrewUs 13 11.07.18 15:22 Сейчас в теме
(14) В проводках документа нет заказа, но и договор не указан, что становится неприятной проблемой для бухгалтера при сверке.
17. dyuha 52 12.07.18 09:44 Сейчас в теме
Договор появится после расчета взаиморасчетов.
18. AndrewUs 13 12.07.18 13:21 Сейчас в теме
Т.е. получается, если в документе указан заказ или поступление как объект расчетов, то после закрытия месяца, в оборотке будет указан договор?
Если это так, то у нас данный фокус не получается.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот