Расчеты онлайн с клиентами "поехали"? Как откорректировать? Управление торговлей 11.5

07.10.22

Задачи пользователя - Корректировка данных

В публикации рассмотрен механизм, позволяющий перезаполнить в 1С:Управление торговлей 11.5 расчеты с клиентами новой архитектуры "онлайн".

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Управление торговлей 11.5. Расчеты Онлайн с клиентами "поехали"? Как откорректировать?:
.epf 8,09Kb
50 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

В 1С:Управление торговлей 11.5 есть возможность использовать 2 архитектуры расчетов: офлайн (старая) и онлайн (новая).

 

 

Если у вас этого переключателя не видно, значит у вас уже Онлайн.

В данной публикации рассматриваются только расчеты с клиентами. Офлайн (старая) архитектура использует регистр накопления РасчетыСКлиентами, онлайн (новая) - регистр накопления РасчетыСКлиентамиПоСрокам.

Иногда после обновления ведомость взаиморасчетов или сверка взаиморасчетов показывает неправильные остатки или обороты. Радует, что "портится" только один регистр РасчетыСКлиентамиПоСрокам. Сверяться можно по-прежнему по регистру РасчетыСКлиентами. Но только с помощью консоли запросов т.к. все штатные отчеты будут брать данные из регистра РасчетыСКлиентамиПоСрокам.

Приложенная обработка делает следующее:
- очищает регистр РасчетыСКлиентамиПоСрокам по заданному Партнеру
- перезаполняет регистр РасчетыСКлиентамиПоСрокам по заданному Партнеру по данным регистра РасчетыСКлиентами.

 

 

Тестировалось на демо базе конфигурации 1С:Управление торговлей 11.5.9.119 на платформе 8.3.21.1302. Код обработки ниже.


&НаКлиенте
Процедура ПартнерПриИзменении(Элемент)
	ПартнерПриИзмененииНаСервере();
КонецПроцедуры

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

&НаКлиенте
Процедура ОткорректироватьРасчеты(Команда)
	ОчиститьРасчетыПартнераНаСервере(); 
	ОбработатьДокументыНаСервере();
	ПартнерПриИзмененииНаСервере();
КонецПроцедуры 

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

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

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

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

&НаСервере
Функция ПолучитьТаблицуДвижений(ОбъектРасчетов)
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	РасчетыСКлиентамиОбороты.АналитикаУчетаПоПартнерам КАК АналитикаУчетаПоПартнерам,
	|	РасчетыСКлиентамиОбороты.ОбъектРасчетов КАК ОбъектРасчетов,
	|	РасчетыСКлиентамиОбороты.Валюта КАК Валюта,
	|	РасчетыСКлиентамиОбороты.Регистратор КАК РасчетныйДокумент,
	|	РасчетыСКлиентамиОбороты.СуммаОборот КАК Долг,
	|	РасчетыСКлиентамиОбороты.СуммаОборот КАК ДолгРегл,
	|	РасчетыСКлиентамиОбороты.СуммаОборот КАК ДолгУпр,
	|	РасчетыСКлиентамиОбороты.Период КАК Период,
	|	РасчетыСКлиентамиОбороты.Регистратор КАК ДокументРегистратор
	|ИЗ
	|	РегистрНакопления.РасчетыСКлиентами.Обороты(, , Регистратор, ОбъектРасчетов = &ОбъектРасчетов) КАК РасчетыСКлиентамиОбороты";
	
	Запрос.УстановитьПараметр("ОбъектРасчетов", ОбъектРасчетов);
	
	РезультатЗапроса = Запрос.Выполнить();
	ТаблицаДвижений = РезультатЗапроса.Выгрузить();
	ТаблицаДвижений.Колонки.Добавить("ВидДвижения", Новый ОписаниеТипов("ВидДвиженияНакопления"));
	ТаблицаДвижений.Колонки.Добавить("ХозяйственнаяОперация", Новый ОписаниеТипов("ПеречислениеСсылка.ХозяйственныеОперации"));
	
	Для каждого СтрокаДвижения из ТаблицаДвижений Цикл
		СтрокаДвижения.ВидДвижения = ВидДвиженияНакопления.Приход;
		СтрокаДвижения.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
		Если СтрокаДвижения.Долг < 0 Тогда  
			СтрокаДвижения.Долг = -СтрокаДвижения.Долг;	
			СтрокаДвижения.ДолгРегл = -СтрокаДвижения.ДолгРегл;	
			СтрокаДвижения.ДолгУпр = -СтрокаДвижения.ДолгУпр;
			СтрокаДвижения.ВидДвижения = ВидДвиженияНакопления.Расход;
			СтрокаДвижения.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПогашениеЗадолженностиКлиента;
		КонецЕсли;
	КонецЦикла;
	
	Возврат ТаблицаДвижений;
КонецФункции

&НаКлиенте
Процедура ПриОткрытии(Отказ)
	ПартнерПриИзмененииНаСервере();
КонецПроцедуры

 

Вступайте в нашу телеграмм-группу Инфостарт

управление торговлей 11.5 взаиморасчеты расчеты онлайн офлайн новая архитектура сбой некорректно поехали

См. также

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам.

50200 руб.

24.04.2015    211469    186    254    

303

Печатные формы Взаиморасчеты Оптовая торговля Производство готовой продукции (работ, услуг) Акт сверки Бухгалтер Пользователь 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Задайте для каждой организации свою печать и для каждого физического лица свою подпись. Выберите в документе печатную форму "... с печатью и подписью" - и автоматически сформируется табличный документ с печатью и подписями той организации и ответственных лиц, которые указаны в документе.

17080 руб.

13.03.2018    73008    277    80    

126

Взаиморасчеты Email рассылки Акт сверки Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Бухгалтерский учет Платные (руб)

Внешняя обработка для Бухгалтерии 3.0 - позволяет автоматически формировать документы «Акт сверки расчетов» с контрагентами за выбранный период с последующей фоновой отправкой на почту контрагента.

5084 руб.

25.11.2020    31653    345    21    

296

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14640 руб.

29.04.2020    52962    145    164    

98

Взаиморасчеты Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение позволяет гибко настроить расчет и начисление пени в 1С в организации.

9760 руб.

18.10.2017    44874    108    47    

105

Зарплата Корректировка данных Бухгалтер 1С 8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет НДФЛ Платные (руб)

Внешняя обработка сравнивает НДФЛ из расчетного листка и НДФЛ из регистра, на разницу формирует операцию учета НДФЛ. Исправляет расхождения, в том числе, когда Аванс больше Зарплаты Рассчитывает НДФЛ и сравнивает с исчисленным в программе. На отклонение формирует документ "Перерасчет НДФЛ"

9760 руб.

01.09.2023    10118    325    93    

25
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Константин С. 685 21.11.22 22:37 Сейчас в теме
А работа штатной не подходит для формирования документов "РегистраторРасчетов"
e1cib/app/Обработка.ЗаполнениеРегистровВзаиморасчетов

и не приводит ваше действие "корректировки" системой остатков по регистру "по срокам", в момент закрытия месяца "Актуализацией движения документов..."
de0nis; План счетов; kras_dar; +3 – Ответить
Для отправки сообщения требуется регистрация/авторизация