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 11.07.18 08:11 Сейчас в теме
Программе проще найти заказ по сумме, и взять из него условия, чем гадать по какому договору из 100500 отразить поступление. Сформируйте отчет по взаиморасчетам и посмотрите, что он покажет, если в Заказе расчет по договорам.
4. AndrewUs 10 11.07.18 08:15 Сейчас в теме
(3) Но как тогда получается, что у некоторых контрагентов в документ подставляется сразу договор, а у некоторых документы расчета? Наверняка какая-то запись в регистрах есть, которая влияет на это "безобразие".
Раньше, в более ранних версиях 1С, была возможность у контрагента указать основной договор, сейчас же такой возможности я не нахожу.
5. dyuha 11.07.18 08:22 Сейчас в теме
Я думаю есть система приоритетов. Если документ по сумме подошел берем его. Если никакой не подошел идем в договоры. Если договор один - берем его. (Дальше фантазии) Если не один, берем тот по которому есть задолженность, Если несколько, берем тот у которого срок задолженности больше.
Надо посмотреть в конфигураторе механизм подбора объекта расчетов. Точно помню были комментарии, но искать лень.
6. AndrewUs 10 11.07.18 08:40 Сейчас в теме
(5) Не помните, комментарии в модуле формы документа? Или где-то в другом месте?
7. dyuha 11.07.18 08:56 Сейчас в теме
Обработки.КлиентБанк.ПодготовитьСтрокиВыписки(...) Начинать от туда и по шагам вся логика как на ладони.
8. dyuha 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 11.07.18 10:12 Сейчас в теме
(11) Запрос формирует таблицу документов, в которой порядок документов определяется логикой запроса. Потом в цикле сумма закрывается документами по порядку, пока не схлопнется. Потом при проведении на основании соглашения/договора формируются проводки в регистр и если расчеты по договорам они и будут по договорам. А заказ будет служить источником договора для расчетов.
13. AndrewUs 10 11.07.18 10:28 Сейчас в теме
(12) Т.е. как я понял, без вмешательства в код никак нельзя программу заставить всегда указывать в поле объект расчетов договор, а если договоров несколько то первый по порядку?
14. dyuha 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 12.07.18 09:44 Сейчас в теме
Договор появится после расчета взаиморасчетов.
18. AndrewUs 10 12.07.18 13:21 Сейчас в теме
Т.е. получается, если в документе указан заказ или поступление как объект расчетов, то после закрытия месяца, в оборотке будет указан договор?
Если это так, то у нас данный фокус не получается.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Казань
Полный день

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

Ведущий программист 1С
Екатеринбург
зарплата от 100 000 руб.
Полный день

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

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