Документы и Печать · 10 мин
Как изменить время в документах групповой обработкой в 1С
Пошаговая инструкция по изменению времени в документах 1С групповой обработкой: стандартная обработка, произвольный алгоритм, проверка результата и типичные ошибки.
Массовое изменение времени в документах требуется, когда документы введены вручную с одинаковым временем, последовательность проведения нарушена, либо нужно привести регистры к правильному хронологическому порядку. Вручную открывать каждый документ долго и рискованно: легко пропустить объект или ошибиться в реквизитах. Групповая обработка решает задачу за несколько минут и снижает количество ошибок.
В типовых конфигурациях на базе Библиотеки стандартных подсистем (Управление торговлей, ERP, Комплексная автоматизация, Бухгалтерия предприятия 3.0) для этого используется стандартная обработка «Групповое изменение реквизитов». В более старых или самописных решениях применяют универсальную обработку «Групповая обработка справочников и документов» либо пишут короткий программный код.
Ниже разобраны все рабочие способы: от стандартной обработки до произвольного алгоритма, а также ограничения, проверка результата и типичные ошибки, из-за которых время меняется не так, как ожидалось.
Когда нужна групповая смена времени и что важно понять заранее
Типичные ситуации: документы загружены из внешней системы с нулевым или одинаковым временем; менеджеры вводили документы задним числом, и последовательность проведения развалилась; нужно развести документы по времени внутри одного дня для корректного расчета себестоимости или партионного учета.
Принципиальный момент: в 1С дата документа хранится вместе со временем с точностью до секунды. Меняя время, вы фактически меняете значение реквизита «Дата», а значит, меняется позиция документа в последовательности и момент проведения. Это влияет на движения по регистрам, итоги и отчеты, построенные с точностью до секунды.
Также учитывайте права: обработка доступна пользователям с правами администратора или с ролью, включающей групповое изменение реквизитов. Если пункта нет в меню — либо нет прав, либо конфигурация не содержит этой подсистемы.
Способ 1: стандартная обработка «Групповое изменение реквизитов»
В конфигурациях на БСП обработка находится по пути: «Администрирование» → «Обслуживание» → «Корректировка данных» → «Групповое изменение реквизитов». В некоторых конфигурациях она доступна из раздела «НСИ и администрирование». Если интерфейс отличается, обработку можно найти через «Все функции» → «Обработки».
Порядок работы такой: в поле выбора типа объектов укажите вид документа (например, «Реализация товаров и услуг»), задайте отбор — по дате, организации, контрагенту или любому реквизиту. Без отбора обработка захватит все документы вида, что почти всегда нежелательно.
- 1Сделайте резервную копию базы или убедитесь, что есть актуальный бэкап
- 2Откройте «Администрирование» → «Обслуживание» → «Групповое изменение реквизитов»
- 3Выберите вид документов и настройте отбор по дате и организации
- 4В списке реквизитов отметьте «Дата» и задайте новое значение с нужным временем
- 5Нажмите «Изменить реквизиты» и дождитесь завершения
- 6Проверьте 3–5 документов из выборки: время, проведенность, движения
Ограничение стандартного способа: реквизит «Дата» содержит и день, и время. Установив новое значение, вы зададите всем отобранным документам одинаковые дату и время. Если нужно только поменять время, сохранив исходные дни, или развести документы по разному времени — потребуется произвольный алгоритм (см. ниже).
Способ 2: произвольный алгоритм внутри групповой обработки
В той же обработке «Групповое изменение реквизитов» есть режим «Выполнить произвольный алгоритм» (включается через меню «Еще» или отдельной кнопкой, в зависимости от версии БСП). Он позволяет написать код на встроенном языке, который выполнится для каждого отобранного объекта. Объект доступен в переменной Объект.
Пример: установить всем документам время 12:00:00, сохранив день:
Объект.Дата = НачалоДня(Объект.Дата) + 12 * 3600;Пример посложнее — развести документы по времени с шагом в минуту, чтобы восстановить хронологию. Для этого в алгоритме используют внешний счетчик либо вычисляют смещение от номера документа. Учтите, что в безопасном режиме произвольного алгоритма часть возможностей языка ограничена.
Способ 3: универсальная обработка «Групповая обработка справочников и документов»
Для конфигураций без БСП (например, старые редакции Управление торговлей 10.3, УПП, самописные решения) используется классическая универсальная обработка «Групповая обработка справочников и документов» с диска ИТС. Она открывается через «Файл» → «Открыть» и работает в обычном и управляемом приложении.
В ней выбирают тип объекта «Документы», конкретный вид, настраивают отбор, а затем на закладке «Обработка» выбирают действие «Установить реквизит» → «Дата» либо «Произвольный алгоритм». Логика та же: задать новое значение даты с нужным временем или выполнить код для каждого объекта.
Сравнение вариантов
Подходит для типовых конфигураций 3-й редакции; простой интерфейс, есть произвольный алгоритм. Ограничение: требует прав и наличия подсистемы БСП.
Подходит для старых и нетиповых конфигураций, гибкие отборы. Ограничение: нужен файл обработки, интерфейс устаревший.
Максимальная гибкость: любые условия, пакетное проведение, транзакции. Ограничение: нужны навыки разработки и осторожность.
Способ 4: программная обработка через консоль кода
Если логика сложная — например, выставить время по данным из табличной части, из связанного документа-основания или по внешнему файлу — удобнее написать код в консоли кода (обработка «Консоль кода» с ИТС) или во внешней обработке.
Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Документ.РеализацияТоваровУслуг ГДЕ Дата МЕЖДУ &Нач И &Кон");
Запрос.УстановитьПараметр("Нач", НачалоДня(ТекущаяДатаСеанса()) - 86400);
Запрос.УстановитьПараметр("Кон", КонецДня(ТекущаяДатаСеанса()));
Выборка = Запрос.Выполнить().Выбрать();
Сч = 0;
Пока Выборка.Следующий() Цикл
Объект = Выборка.Ссылка.ПолучитьОбъект();
Объект.Дата = НачалоДня(Объект.Дата) + 9 <em> 3600 + Сч </em> 60;
Объект.Записать(РежимЗаписиДокумента.Проведение);
Сч = Сч + 1;
КонецЦикла;Ключевые моменты кода: НачалоДня() отсекает старое время, смещение в секундах задает новое; РежимЗаписиДокумента.Проведение перепроводит документ с новым моментом времени. Для больших выборок оборачивайте запись в транзакцию партиями и отключайте вывод сообщений, чтобы ускорить выполнение.
Проверка результата после обработки
Не ограничивайтесь сообщением об успешном завершении. Откройте несколько документов из выборки и сверьте дату-время в шапке. Затем сформируйте отчет по регистру (например, «Товары на складах» или оборотно-сальдовую ведомость) на дату после обработки и сравните итоги со значениями до обработки — сальдо не должно измениться, если менялось только время внутри дня.
Как проверить результат
Соответствует заданному, день не изменился
Сбросился день или время не применилось — проверьте формулу алгоритма
Документы остались проведенными, движения есть
Документы сняты с проведения или ошибки записи в журнале
Сальдо на конец дня не изменилось
Итоги «поплыли» — восстановите последовательность или откатите копию
Если в базе используются последовательности документов (механизм в типовых решениях), после смены времени граница последовательности может откатиться назад. Восстановите её штатной обработкой «Проведение по последовательностям», иначе расчеты себестоимости и партионного учета будут выполняться с учетом старой границы.
Типичные ошибки и ограничения
Отдельное ограничение касается обменов: если база участвует в синхронизации (РИБ, обмен с сайтом, другой конфигурацией), измененные документы будут зарегистрированы к выгрузке и уйдут в другие узлы. Убедитесь, что приемная сторона корректно примет новые даты и не возникнет коллизий.
Перед массовой обработкой выполните пробный запуск с отбором по одному документу. Если результат устраивает — расширяйте отбор. Это занимает минуту, но страхует от необратимой порчи тысяч документов.
FAQ
Можно ли изменить только время, не трогая день документа?
Да. В типовом реквизите «Дата» день и время хранятся вместе, поэтому напрямую задать «только время» нельзя. Используйте произвольный алгоритм: формула вида Объект.Дата = НачалоДня(Объект.Дата) + Часы 3600 + Минуты 60 сохраняет исходный день и устанавливает нужное время.
Почему после обработки часть документов не изменилась?
Наиболее частые причины: документ попадает под дату запрета изменения данных, у пользователя нет прав на объект, документ не проводится на новый момент времени (например, не хватает остатков) или он заблокирован другим сеансом. Смотрите сообщения об ошибках в окне обработки и в журнале регистрации.
Изменятся ли проводки и движения по регистрам?
Да, если документ проведен: при записи с новой датой он перепроводится, и движения перезаписываются с новым моментом времени. Суммы обычно не меняются, но позиция в хронологии меняется, что влияет на расчет себестоимости и партионный учет внутри дня.
Нужно ли восстанавливать последовательности после смены времени?
Если в конфигурации используются последовательности (партионный учет, расчет себестоимости), то да. Смена времени откатывает границу последовательности. Запустите штатное восстановление через «Операции» → «Проведение по последовательностям» или регламентное закрытие месяца.
Можно ли отменить групповую обработку?
Штатной кнопки «отменить» нет. Откат возможен только восстановлением из резервной копии или повторной обработкой с прежними значениями (если они где-то сохранены). Поэтому резервная копия перед запуском — обязательное условие, а не рекомендация.
Работает ли способ в 1С:Бухгалтерии 8.3?
Да. В Бухгалтерии предприятия 3.0 обработка «Групповое изменение реквизитов» доступна в разделе «Администрирование» → «Обслуживание» → «Корректировка данных». Если пункта нет, проверьте права пользователя и включите режим «Все функции» для поиска обработки вручную.
Что важно запомнить
Время документов массово меняют через «Групповое изменение реквизитов» или универсальную обработку: отбор по нужным документам, затем установка даты с новым временем или произвольный алгоритм с формулой НачалоДня() + смещение. Перед запуском — резервная копия и проба на одном документе, после — проверка проведенности, итогов и восстановление последовательностей.