Управление взаиморасчетами. Корректировки регистров партий

Все взаиморасчеты с контрагентами (клиентами и поставщиками) ведутся в разрезе трех измерений:

  • организация,
  • партнер/контрагент,
  • объект расчетов.

В качестве объекта расчетов могут выступать:

  • заказ,
  • накладная,
  • договор

Тип объекта расчетов выбирается на уровне соглашения.

Расчеты с клиентами

Для начала создадим типовое соглашение о продажах и в качестве объекта расчетов выберем заказы клиентов ЗК (самый детализированный вариант):

В соглашении также указывается и график оплаты ЗК (то, каким образом и в какие сроки будет оплачен ЗК). В нашем примере ЗК будет оплачиваться через 5 дней после отгрузки (т.е. постоплата):


Тут же можно наложить фильтр на тип оплаты, принятой в рамках соглашения:


Помимо постоплаты может быть выбран аванс и предоплата.


Разница между ними в том, что аванс предполагает вариант, что товара у нас еще вообще может не быть (т.е. мы даже не сможем организовать обеспечение товаров в ЗК, пока не зарегистрируем поступление аванса по нему), а предоплата предусматривает, что товар есть в наличии на нашем складе и будет отгружен сразу после оплаты.

Теперь создаем сам ЗК, видим что график оплаты заполнился по соглашению:


При этом дата платежа заполняется на основании поля Желаемая дата отгрузки (т.к. оно пустое, для расчета используется Дата отгрузки ):


Теперь на основании ЗК оформляем реализацию:


В списке ЗК меняется текущее состояние:


При двойном клике на нем открывается отчет по состоянию выполнения:


Теперь необходимо зарегистрировать поступление оплаты от клиента. Самый быстрый способ - на основании ЗК создать Поступление безналичных денежных средств . Но есть и другой способ - в журнале Безналичные платежи использовать закладку К поступлению :


Документ заполнился почти полностью, не забываем установить признак проведения платежа банком:


На второй вкладке видим, что в качестве объекта расчетов используется именно ЗК. Благодаря выбору статьи ДДС в соглашении, она теперь подставляется сама:


Теперь ЗК готов к закрытию, долгов нет:


Состояние расчетов можно отслеживать с помощью отчета Ведомость расчетов с клиентами :


Теперь проведем эксперимент - создадим несколько реализаций по нашему соглашению, но без использования ЗК:


В отчете можем увидеть, что в качестве объекта расчетов показаны именно документы продажи (несмотря на то, что взаиморасчеты ведутся по заказам):


Теперь зарегистрируем оплату от клиента по этим реализациям, при этом создадим одну платежку:



В расшифровке платежа выбираем тип заполнения Списком и нажимаем Подобрать по остаткам :


В списке выделяем нужные, переносим в платежку:



Обращаю ваше внимание, что в журнале нет информации о состоянии оплаты реализаций:


Эту информацию можно достать только из ведомости:


Взаиморасчеты с поставщиками

На этот раз пример немного усложним - для начала введем авансовый платеж поставщику:



При этом объект расчетов оставим пустым:


В отчетах по закупкам будем использовать Ведомость расчетов с поставщиками :


Теперь создаем заказ поставщику (взаиморасчеты будем вести в разрезе заказов). Чтобы отнести на него оплату, нужно сделать зачет аванса:


В открывшемся окне помощника по зачету оплат находим аванс, при необходимости корректируем сумму зачета и нажимаем Зачесть/Перенести аванс :


Теперь видим, что аванс зачтен, нажимаем Выполнить в верхней части формы:


В результате заказ становится полностью оплаченным:


Сейчас в отчете можно увидеть, что часть аванса осталась нераспределенной, а по заказу для выведения расчетов в ноль осталось оформить приходную накладную:


Взаимозачет задолженности

В том случае, когда есть одновременно и дебиторская и кредиторская задолженность, нередко используют взаимозачет задолженности, чтобы компенсировать один долг за счет другого.


У нас в программе уже зарегистрирован автоматически одна операция - это отражение факта зачета авансов:


Т.е. дебиторская задолженность (долг поставщика перед нами) по платежке программа перебросила на кредиторскую задолженность (наш долг перед поставщиком) по заказу поставщику:


В комментарии есть отметка об автоматическом создании:


Вот список операций, для которых можно использовать взаимозачет:


Сверка взаиморасчетов

Из раздела Казначейство открываем журнал документов Сверка взаиморасчетов , создаем новый с использованием помощника:


Настраиваем отбор:


Выбираем необходимых контрагентов по данному партнеру, по которым необходимо сделать сверку:


Устанавливаем дату формируемых сверок:


По окончании создается подобная сверка. Для большей информативности изменим вариант детализации:


К примеру, добавим вывод объектов расчетов:


После этого нажимаем Заполнить по данным организации :


Как вы могли заметить, все накладные в табличной части оформлены за рамками урока, а те, которые мы вводили немногим ранее, в таблице отсутствуют. Причина проста - сюда попадают только те продажи, по которые есть непогашенный долг.

По кнопке Печать распечатывается Акт сверки взаимных расчетов :


Вопрос: Запуск фонового задания под нужным пользователем


Здравствуйте!
Есть 1С:Предприятие 8.3 (8.3.11.2924), УТ 11.3.4.93 клиент - сервер.
В этой конфигурации движения по регистру "Расчеты с клиентами по документам " выполняется не в момент проведения документа, а регламентным заданием "Выполнение отложенных движений по расчетам с клиентами\поставщиками".
При этом иногда регламентное задание выдавало ошибку, т.к. пыталось сделать движения в закрытом периоде (Ранее даты запрета редактирования). В настройках регламентного задания прописали специального пользователя, у которого дата запрета открыта, после этого все стало работать.
Однако, есть необходимость сделать, чтобы данные движения по регистрам делались в момент проведения документа, а не тогда, когда запустится фоновое задание по расписанию.
Если запускать сам код, который выполняет регламентное задание при проведении документа, то возникает та же ошибка - закрыт период. И если программно запускать фоновое задание запускающее этот же код в момент проведения документа, то оно вызывает точно ту же ошибку, т.к. период закрыт, а фоновое задание, запускаемое программно, запускается под именем текущего пользователя, а у него дата запрета закрыта. Однако, когда запускается фоновое задание по расписанию, у которого установлен "правильный" пользователь в планировщике, то все проходит на ура. Вот как это сделать программно, как программно запустить фоновое задание под нужным пользователем "через планировщик" как это делают стандартные регламентные задания, подскажите пожалуйста?

Ответ:

Разве не под тем, под которым настроено?
Это должно быть глюк конфигурации

Lis2007 сказал(а):

Здравствуйте!При этом иногда регламентное задание выдавало ошибку, т.к. пыталось сделать движения в закрытом периоде (Ранее даты запрета редактирования). В настройках регламентного задания прописали специального пользователя, у которого дата запрета открыта, после этого все стало работать

Нажмите, чтобы раскрыть...

Вопрос: Регламентные задания


(Серверный вариант базы) Есть несколько регламентных заданий, выполняющихся по расписанию, один раз в сутки, ночью....
В Общих модулях описаны процедуры, которые запускаются регламентно.
Параллельно с этим сделал из интерфейса принудительный запуск этих же процедур вручную.
Процедуры выполняют довольно сложные действия (регаментные работы по итогам трудового дня связанные с проведением документов и движениями по регистрам. Алгоритм работает верно, так как работает уже около года....
Проблема вот в чем....
Иногда. ИМЕННО ИНОГДА! Регламентное задание выполняется и прерывается аварийно по причине ошибок в проведении документов. Это происходит периодами. Может целую неделю, подряд каждый день вылетать аварийно... а может неделю продержаться нормально, без ошибок.
Парадокс в другом....
Если я запускаю все эти же процедуры вручную, принудительно, из интерфейса. Ошибок не бывает НИКОГДА.
Это что значит?

Ответ:

DAK сказал(а):

Происходит это ночью.... никто в базе не сидит..... ничего не открыто.....

Нажмите, чтобы раскрыть...

Ночью никто не сидит, кроме регламентных заданий.
Ваше задание лопатит документы, получает ссылку на очередной документ, затем получает по ссылке объект, а в это время другое задание уже меняет сам объект в базе.
При этом второе задание изменить объект уже не сможет - кто раньше встал - того и тапки.
Пересмотрите расписания ваших регламентных заданий, похоже они одеяло тянут - каждый на себя

Вопрос: Справочники и Регламентное задание


Добрый день!

Столкнулся с проблемой.
Платформа 1С 8.1, База лежит на сервере MSSQL, 1С сервер x64
Есть регламентное задание которое запускается.
После запуска происходит запрос, который получив данные о некотором списке документов, анализирует данные об их контрагентах, вызывая функцию находящуюся в общем модуле этого регл. задания с параметром ссылка на контрагента.

Вот функция
Функция КонтрагентСогласен(Контрагент) Экспорт

Если Контрагент.Согласен = Истина Тогда
Возврат Истина;
иначе
Возврат Ложь;
КонецЕсли;
КонецФункции

Регламентное задание завершается с ошибкой.
Пишет что {ОбщийМодуль.Модуль()}: Метод объекта не обнаружен (Согласен)

В справочнике контрагенты, имеется реквизит типа булево, названный согласен.

Помогите советом, как совершить проверку данных из регламентного задания? Так понимаю на сервере...

Ответ:

Контрагент - ссылка на эл. справочника контрагенты.

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

Если Контрагент.Согласен = Истина Тогда...

Вопрос: Ошибка подключения к WinSCP для регламентных заданий 1С


Добрый день. Столкнулся со следующей проблемой, не получается подключиться к winSCP регламентным заданием, но при обычном запуске (например через внешнюю обработку) подключение работает корректно.
Исходные данные:
Сервер Windows server 2016
1С платформа 1С:Предприятие 8.3 (8.3.10.2299)
SQL Microsoft SQL Server 2017
WinSCP-5.11.2
Регистрировал библиотеку следующим образом:
Скопировал файл WinSCPnet.dll в папку %WINDIR%\Microsoft.NET\Framework\v4.0.30319\
И запустил команды через cmd(администратор)
%WINDIR%\Microsoft.NET\Framework\v4.0.30319\RegAsm.exe WinSCPnet.dll /codebase /tlb
// %WINDIR%\Microsoft.NET\Framework\v4.0 .30319 \RegAsm.exe WinSCPnet.dll /codebase /tlb:WinSCPnet32.tlb // %WINDIR%\Microsoft.NET\Framework64\v4.0 .30319 \RegAsm.exe WinSCPnet.dll /codebase /tlb:WinSCPnet64.tlb
Но все равно в ФОНОВОМ режиме 1Ска не хочет подключаться к WinSCP.
Пишет следующую ошибку
Ошибка при вызове конструктора (COMОбъект): -2147221164(0x80040154): Класс не зарегистрирован

Подключаюсь следующим способом.
sessionOptions = Новый COMОбъект("WinSCP.SessionOptions"); Буду очень рад вашей помощи. Может кто сталкивался с выгрузкой/загрузкой данных через WinSCP при помощи регламентных заданий.

Ответ: Разобрался с проблемой, поставил новую версию WinSCP. Не стал перекидывать библиотеку в папку с windows и прописал следующую команду %WINDIR%\Microsoft.NET\Framework64\v4.0.30319\RegAsm.exe "Путь до файла с новой библиотекой" /codebase /tlb:WinSCPnet64.tlb
После этого регламентные задания стали цепляться к WinSCP.

Вопрос: Уведомление при выполнении регламентного задания


У пользователей 1С запускаются каждые 5 минут регламентные задания, стандартные в 1С8 Розница. Если осуществляется продажа и рег. задание в это время проходит, то может за двоиться продажа. Можно ли как то вывести уведомления для кассира, что запущено регламентное задание?

Ответ: ни разу с таким не сталкивался... самый простой вариант - при пробитии чека - проверять не выполняется ли в данный момент регламентное задание и по завершению - пробивать чек
и кстати, какие регламентные задания нужны на кассе? кроме обмена - не придумывается ничего..

Вопрос: Новое регламентное задание


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

Создаю регламентное задание, общий модуль для него в нем пишу для проверки соообить.
В консоли заданий смотрю что все выполняется. Но не выводится сообщение!

Ответ:

Draco сказал(а):

вроде же регламентные задания на стороне сервера отрабатывают, а на сервере Сообщить.. вроде же только на клиенте такое

Нажмите, чтобы раскрыть...

Верно, сообщить из регламентного задания подвешивает 1с. Не знаю, как с этим справляется розница, но лучше уж писать в текстовый файл или журнал регистрации

Вопрос: ошибки с регламентным заданием


добрый вечер.написал регламентное задание по обработке заказа.но оно ругается на ошибки.то "Предупреждение" в модуле объекта не нравиться-заменил на сообщить то "ПользователиИнформационнойБазы.ТекущийПользователь().ОсновнойИнтерфейс.Имя" на имя ругается,то на рабочую дату(заменил на текущую()) а вот имя менять не знаю стоит ли дальше будет на что то ругаться.как правильно сделать?

Ответ: Регламентные задания вызываются на сервере, а не на клиенте.

В синтакс-помощнике описаны, какие процедуры доступны в каких местах.

Например предупреждение нельзя вызвать на сервере:
Предупреждение (DoMessageBox) ...
Доступность:
Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент).

Проверка модуля сразу может проверять и ругаться, если поставить галку:

Вопрос: Регламентное задание с параметром


Конфа: Комплексная автоматизация, платформа 8.3
Любопытная проблема, с некоторого времени перестало выполняться регламентное задание по обмену между базами. Если вручную обмен запустишь то все хорошо, если через регламентное задание то Ж.

Возникает ошибка "Недостаточно фактических параметров для метода фонового задания".

Само регламентное задание типовое "ВыполнениеОбмена" которое вызывает процедуру:

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

Отладка естественно невозможна, т.к. не вызывается сама по себе процедура... Поэкспериментировав с самописной тестовой базой у меня такая ошибка возникает, когда я добавляю хотя бы 1 параметр без значения по умолчанию в процедуру регламентного задания!.

Т.е. из-за параметра "КодНастройки" скорее всего и возникает данная ошибка!

Однако посмотрев большинство типовых регламентных операций я увидел что многие содержат параметр! Например:

Процедура РасчетЦеныНоменклатурыРеглЗадание(Настройка) Экспорт Процедура ДопроведениеДокументов(Настройка) Экспорт


Через глобальный поиск узнать откуда где эти настройки вообще могут взяться ни к чему не привело. Сколько я не работал с регламентными заданиями никогда в самой вызывающей процедуре не указывал параметр...

Кто нибудь сталкивался с такой проблемой, или кто нибудь знает как типовые конфигурации умудряются указывать в объекте метаданных "Регламентные задания" процедуру с параметром?

Например в конфе бухгалтерия 3.0 есть регламентное задание "ЗапускДополнительныхОбработок" которая вызывает процедуру с 2 параметрами:

Процедура ВыполнитьОбработкуПоРегламентномуЗаданию(ВнешняяОбработка, ИдентификаторКоманды) Экспорт...

В базе есть регламентные задания (не предопределенные, по одному на каждый элемент справочника)
Они создаются программно на основании предопределенного. Но расписание для каждого задается свое.
Рег. задание должно выполняться 1 раз в день, но консоль показывает, что оно выполняется и завершается (без ошибок) каждую секунду.

Пробовали вертеть это расписание по разному с детальным расписанием и без него, с повтором и без повтора.
Интервал повтора в случае ошибки - 0. Задание выполняется без ошибок.
Есть у кого-нибудь соображения?

Ответ:

nomad_irk сказал(а):

При записи программно сформированного рег. задания оно будет выполнено независимо от расписания. Следующее выполнение будет по расписанию, либо при перезапуске 1С сервиса.

Нажмите, чтобы раскрыть...

Блин, похоже все было именно так.
Когда рег.задание отрабатывало оно записывало свои настройки (перечень объектов по которым надо пробежаться и расписание). Точно не скажу как и когда оно менялось - в отладке не увидел этого, но после того, как закомментировал запись настроек проблема исчезла.

Вопрос: Регламентное задание не отправляет почту через Outlook


Здравствуйте.
1С:Предприятие 8.2 (8.2.19.90)

Использую отправку писем через outlook.

Outlook = Новый COMОбъект("Outlook.Application"); Письмо = Outlook.CreateItem(0); Письмо.Subject = пТемаПисьма; . ......... Попытка Письмо.Send(); ЗаписьЖурналаРегистрации("РЗ", УровеньЖурналаРегистрации.Предупреждение, "6"); Исключение КонецПопытки;

Если запускаю интерактивно обработку, письмо отправляется.
Через регламентное задание использую туже процедуру. Регламентное задание отрабатывает без ошибки. Строка
Письмо.Send();
отрабатывает. Я в этом уверен, потому что далее отрабатывает запись в журнал регистрации

ЗаписьЖурналаРегистрации("РЗ", УровеньЖурналаРегистрации.Предупреждение, "6");

Но письма по факту не приходят и в списке отправленных их нет.
Подскажите в чем может быть проблема

Ответ:

На сервере 1С почтовый клиент есть? пользователь от которого стратует рег задание у него какие права?

В вопросе 9.13 требуется определить, как происходит распределение оплат по накладным в случае ведения взаиморасчетов по договорам. Варианты выбора следующие:

  • При выполнении операции Зачет оплаты
  • Регламентным заданием
  • Данная операция при таком способе ведения взаиморасчетов не выполняется

Для того, чтобы использовать учет по договорам, необходимо включить специализированную функцию в настройках продаж (Администрирование – CRM и продажи – Договоры с клиентами ).

Помощник Зачет оплаты предназначен для зачета оплат непривязанных к расчетным документам. Эта функция доступна в различных документах. Рассмотрим на примере Реализации товаров и услуг .
Перейдем в список документов продаж (Продажи – Документы продажи ).

Откроем форму реализации, которая соответствует нашим условиям (ведение взаиморасчетов по договорам). Это означает, что в реализации, в случае если учет ведется с использованием соглашений, должно быть указано соглашение с условием оплаты указанном в договоре.
Проверим это, открыв соглашение из формы документа:

На форме соглашения видим, что признак условия оплаты установлен в значение Требуется указание договора , порядок расчетов определяется в договоре .

Вернемся к форме документа реализации. Вверху на панели есть кнопка Зачет оплаты .

При нажатии, открывается форма помощника зачета оплаты.

Помощник предназначен для зачета различных авансовых платежей под конкретную накладную, из которой мы открываем этот помощник.
У нас же задача другая, требуется определить каким образом необходимо распределять оплаты по нескольким накладным. Поэтому вариант с зачетом оплаты не верен.
Для выполнения поставленной задачи используется регламентное задание Выполнение отложенных движений по расчетам с партнерами , которое распределяет отгрузки и оплаты по конкретным расчетным документам.
Открываются регламентные задания Администрирование – Поддержка и обслуживание – Регламентные и фоновые задания .