Здравствуйте!
Есть клиент банк. Есть 1С ERP 2.4.
Делаем выгрузку файла выписок из банка. Загружаем в 1С.
В итоге получаем в поле "объект расчетов" в документе платежного поручения не договор, а документ поступления, либо заказ, либо платежное поручение.
В договоре выставлен учет по договорам.
Подскажите, пожалуйста, может кто сталкивался с подобным. Как сделать, чтобы при загрузке выписок из банка всегда автоматически подхватывался договор, а не какой-либо документ?
Спасибо.
Есть клиент банк. Есть 1С ERP 2.4.
Делаем выгрузку файла выписок из банка. Загружаем в 1С.
В итоге получаем в поле "объект расчетов" в документе платежного поручения не договор, а документ поступления, либо заказ, либо платежное поручение.
В договоре выставлен учет по договорам.
Подскажите, пожалуйста, может кто сталкивался с подобным. Как сделать, чтобы при загрузке выписок из банка всегда автоматически подхватывался договор, а не какой-либо документ?
Спасибо.
По теме из базы знаний
- 1С обмен данными с клиентом банка для БП 3.0, ERP 2.4, ERP 2.5 с дополнительными правилами загрузки
- Исправление загрузки выписок из банка после обновления. 1С:ERP
- Расширение для выборочной загрузки безналичных платежей для 1С:ERP Управление предприятием
- Обзор полезных методов БСП 3.1.4
- Запрет доступа к данным по зарплате для БП 3.0 и КА 2.5
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(3) Но как тогда получается, что у некоторых контрагентов в документ подставляется сразу договор, а у некоторых документы расчета? Наверняка какая-то запись в регистрах есть, которая влияет на это "безобразие".
Раньше, в более ранних версиях 1С, была возможность у контрагента указать основной договор, сейчас же такой возможности я не нахожу.
Раньше, в более ранних версиях 1С, была возможность у контрагента указать основной договор, сейчас же такой возможности я не нахожу.
Я думаю есть система приоритетов. Если документ по сумме подошел берем его. Если никакой не подошел идем в договоры. Если договор один - берем его. (Дальше фантазии) Если не один, берем тот по которому есть задолженность, Если несколько, берем тот у которого срок задолженности больше.
Надо посмотреть в конфигураторе механизм подбора объекта расчетов. Точно помню были комментарии, но искать лень.
Надо посмотреть в конфигураторе механизм подбора объекта расчетов. Точно помню были комментарии, но искать лень.
(8) Наверное не догоняю, но пробежавшись по коду, чего-то явного в данном условии я не увидел.
Если ЗначениеЗаполнено(СтрокаДокумента.ОбъектРасчетов) Тогда
СтрокаДокумента.СтатьяДвиженияДенежныхСредств =
ДенежныеСредстваСервер.СтатьяДвиженияДенежныхСредствОбъектаРасчетов(СтрокаДокумента.ОбъектРасчетов,
СтрокаДокумента.ВидОперации);
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаДокумента.ОбъектРасчетов) Тогда
СтрокаДокумента.СтатьяДвиженияДенежныхСредств =
ДенежныеСредстваСервер.СтатьяДвиженияДенежныхСредствОбъектаРасчетов(СтрокаДокумента.ОбъектРасчетов,
СтрокаДокумента.ВидОперации);
КонецЕсли;
Посмотрел по коду, нашел запрос, но тоже ничего мне сказал:
// Договор с контрагентом
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ ПЕРВЫЕ 2
| ДанныеДоговора.Ссылка КАК Ссылка,
| ДанныеДоговора.ТипДоговора КАК ТипДоговора,
| ДанныеДоговора.СтатьяДвиженияДенежныхСредств КАК СтатьяДвиженияДенежныхСредств
|
|ИЗ
| Справочник.ДоговорыКонтрагентов КАК ДанныеДоговора
|
|ГДЕ
| ДанныеДоговора.БанковскийСчет = &БанковскийСчет
| И ДанныеДоговора.Контрагент = &Контрагент
| И ДанныеДоговора.БанковскийСчетКонтрагента = &БанковскийСчетКонтрагента
| И ДанныеДоговора.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыДоговоровКонтрагентов.Действует)
|";
Запрос.УстановитьПараметр("БанковскийСчет", БанковскийСчет);
Запрос.УстановитьПараметр("Контрагент", СтрокаДокумента.Контрагент);
Запрос.УстановитьПараметр("БанковскийСчетКонтрагента", СтрокаДокумента.СчетКонтрагента);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() = 1 Тогда
Выборка.Следующий();
СтрокаДокумента.ОбъектРасчетов = Выборка.Ссылка;
СтрокаДокумента.СтатьяДвиженияДенежныхСредств = Выборка.СтатьяДвиженияДенежныхСредств;
Продолжить;
КонецЕсли;
Показать
Наверное это отвечает за данную фичу:
Если ПроводитьДокументы И РаспределяемаяСумма > 0 Тогда // Подбор объектов расчетов
Для Каждого СтрокаТаблицы Из ТаблицаОстатковРасчетов Цикл
Если ЗначениеЗаполнено(СтрокаТаблицы.Заказ) Тогда
Если СтрокаТаблицы.Обработано Тогда
Продолжить;
КонецЕсли;
СтрокаРасшифровки = ДокументОбъект.РасшифровкаПлатежа.Добавить();
СуммаСтроки = Мин(РаспределяемаяСумма, СтрокаТаблицы.Сумма);
РаспределяемаяСумма = РаспределяемаяСумма - СтрокаТаблицы.Сумма;
ЗаполнитьЗначенияСвойств(СтрокаРасшифровки, СтрокаТаблицы, , "Сумма");
СтрокаРасшифровки.Сумма = СуммаСтроки;
СтрокаТаблицы.Обработано = Истина;
Если РаспределяемаяСумма <= 0 Тогда
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Показать
(11) Запрос формирует таблицу документов, в которой порядок документов определяется логикой запроса. Потом в цикле сумма закрывается документами по порядку, пока не схлопнется. Потом при проведении на основании соглашения/договора формируются проводки в регистр и если расчеты по договорам они и будут по договорам. А заказ будет служить источником договора для расчетов.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот