Необходимость в обработке возникла после смены основной валюты учета. Каких-то типовых инструментов для этого не было, пришлось написать обработку.
Форма документа имеет вид:
Если нужно обработать один документ, то нужно выбрать документ в поле "По документу". Для обработки документов за период нужно нужно указать период обработки документов в полях "Дата с ... по ...". В поле "Организация" можно выбрать организацию для обработки документов.
Если сбросить галочка "Составлять список документов", то будет просто составлен список видов документов. Если галочку установить, то по каждому виду будет составлен список документов для обработки, который можно посмотреть на закладке "Документы". В список добавляются только проведенные документы.
Если галочка "Проводить документы" установлена, то документы из списка будут проведены в хронологическом порядке.
"Проводить пачками за день" - режим проведения, когда все документы за день распроводятся, потом последовательно проводятся. Операция проводится в транзакции, поэтому если один из документов не проведется, транзакция за день сразу же отменится. Поэтому такой режим рекомендуется использовать, когда в базе не работают пользователи.
Режим показал свою эффективность в перепроведениях операций закрытия месяца, тогда данные более корректные, чем при простом перепроведении. Можно перепроводить в таком режиме только последний день месяца.
При проведении пачками документы закрытия месяца проводятся в конце дня и сортируются для проведения в следующем порядке, который приоритетнее, чем хронологический:
- Расчет прямых затрат
- Остальные документы вида "Закрытие месяца"
- Расчет фактической себестоимости
- Расчет финансового результата
При обычном проведении или пачками документ всегда отменяется с проведения, потом проводится, потому что не все алгоритмы УНФ корректно работают при простом перепроведении.
При перепроведении выводятся сообщении о датах, за которые были проведены документы в окно сообщений.
Галочка "Отключать контроль отрицательных остатков" в транзакции проведения сначала отключает константу "Контролировать отрицательные остатки", потом выполняет проведение документа, потом возвращает значение константы.
Галочка "Не регистрировать изменения обмена" удаляет изменения, добавленные в планы обмена при записи/проведении документа. При этом, помимо проверки регистрации изменений по самому документу, проверяется еще и регистрация изменений регистра сведений "Факт оплаты заказов", где счетом на оплату является документ, потому что при записи документа изменения могут и туда добавляться.
Галочка "Изменять курсы" используется для изменения курсов документов. Если установить эту галочку и не установить галочку "Проводить документы", то реальных изменений в базе не будет сделано, но будут выданы сообщения обо всех необходимых изменениях курсов документов, что может быть полезно для проверки состояния таких документов.
Курсы изменяются для видов документов, у которых в таблице видов не установлена галочка "Только проводить".
Алгоритм изменения курсов:
- Валюта документа определяется из поля "Валюта документов", а если его нет из "Валюта денежных средств".
- Если у документа есть поле "Договор", валюта расчетов определяется из поля "Валюта расчетов" договора.
- Если у вида стоит галочка "Есть курс", но не заполнена валюта документа, сообщается об ошибке и документ пропускается.
Иначе курс и кратность документа устанавливаются из валюты документа. - Проверяются реквизиты табличных частей документа, содержащие в имени "СуммаПлатежа".
- Для таких строк если в строке есть поле "Договор" и договор заполнен, валюта расчетов строки определяется из поля "Валюта расчетов" договора.
- Для таких строк если в строке есть поле "Договор", но договор не заполнен, валюта расчетов строки определяется как валюта документа.
- Для таких строк если в строке нет поля "Договор", валюта расчетов строки определяется как валюта расчета документа, определенная ранее.
- Если валюта расчетов строки не определена или не определена валюта документа, сообщается об ошибке и строка пропускается.
- Поле для суммы строки определяется заменой названия "СуммаПлатежа" в "СуммаРасчетов". Если такого поля нет, то строка пропускается.
- Сумма расчетов определяется пересчетом суммы платежа из валюты документа в валюту расчетов строки на дату документа. Также в строку проставляется курс и кратность валюты расчетов строки.
Алгоритм изменения курсов показал свою корректность и эффективность на реальных рабочих торговых операциях.
Таблица видов выглядит так:
Количество - это количество документов, попавших в список документов.
Поле "Есть курс" - истина, если в реквизитах шапки документа есть поле "Курс".
Поле "Есть курс ТЧ" - истина, если в реквизитах одной из ТЧ документа есть поле "Курс".
Поле "Только проводить" - истина, если "Есть курс ТЧ" и "Есть курс" не установлены, т.е. в документе нет реквизитов для работы с валютой и не нужно менять его курсы.
Проверено: УНФ 1.6.24.107, 1С 8.3.18.1289.
Время факт: 10 час. Было потрачено на разработку обработки, чтобы добиться с ее помощью корректного перепроведения документов организации-заказчика.