1. AndrewUs 10 10.07.18 15:47 Сейчас в теме

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

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

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

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

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

Вакансии

Разработчик 1С
Москва
зарплата от 100 000 руб. до 160 000 руб.
Полный день

Программист 1С
Москва
зарплата от 80 000 руб.
Полный день

Консультант-аналитик 1С
Санкт-Петербург
Полный день

Консультант-аналитик 1С
Москва
зарплата от 120 000 руб. до 120 000 руб.
Полный день

Senior 1C Developer ЛЮБОЙ ГОРОД
Москва
зарплата от 80 000 руб.
Полный день