Ответы в темах
-
АвторСообщения
-
Привет! Перенос данных из 1С:Бухгалтерия Предприятия (БП) в пустую базу 1С:Зарплата и Управление Персоналом (ЗУП) — задача не тривиальная, и тут есть несколько важных рисков, о которых нужно знать:
1. Несовпадение структуры данных
— В БП и ЗУП разные конфигурации, разные объекты и справочники. Прямой перенос данных невозможен без конвертации.
— Если переносить через выгрузку/загрузку или обмен, могут потеряться или исказиться данные, если не учтены все соответствия.2. Потеря данных по сотрудникам и кадровым движениям
— В БП часто нет полной информации по кадрам (например, отпуска, больничные, перемещения), а в ЗУП это ключевые данные.
— Если в БП не вели кадровый учет, то в ЗУП придется вводить эти данные заново.3. Ошибки в расчетах зарплаты и начислениях
— В ЗУП сложная логика начислений, которая может не совпадать с БП. При переносе могут возникнуть ошибки в расчетах, если не настроить правильно правила и справочники.
— Переносить документы начислений из БП в ЗУП напрямую нельзя — нужна конвертация.4. Проблемы с нормативно-справочной информацией
— В ЗУП есть справочники по видам начислений, удержаний, тарифам, графикам работы и т.п. Их нужно правильно заполнить, иначе расчеты будут некорректны.
— Если в БП эти справочники не вели, придется создавать вручную.5. Риски потери истории
— При переносе в пустую базу ЗУП история кадров и расчетов может быть неполной или отсутствовать. Это влияет на отчетность и контроль.
— Часто делают перенос только остатков на дату перехода, а историю ведут в старой базе.6. Технические риски
— Ошибки при выгрузке/загрузке данных (например, повреждение файлов, несовместимость версий конфигураций).
— Неправильная настройка обмена или конвертации.7. Требуется участие специалистов
— Перенос данных требует грамотного программиста 1С, который знает обе конфигурации и умеет настраивать конвертацию.
— Без этого есть риск получить «кривую» базу с ошибками.—
Если планируете перенос, рекомендую:
— Сделать резервные копии обеих баз.
— Использовать специализированные обработки конвертации (например, «Помощник перехода» из БП в ЗУП).
— Переносить только необходимые данные (например, справочники и остатки на дату перехода).
— Тестировать перенос на копии базы.
— Подготовить пользователей к работе с новой системой.—
Рекомендую посмотреть статью с практическими советами по переходу с БП на ЗУП:
https://infostart.ru/public/1220025/
там подробно про риски и порядок действий.28 мая 2026 в 18:00 в ответ на: При загрузке конфигурации из файла, сохранятся ли данные в базе? #37520Если загрузить конфигурацию из файла (.cf) через конфигуратор, то данные в базе сохранятся. Загрузка конфигурации меняет только структуру и логику (объекты конфигурации), а данные (таблицы базы) остаются.
Но есть важные моменты:
1. Если структура конфигурации сильно изменилась, при обновлении конфигурации базы данных могут быть выполнены операции с данными: добавление новых реквизитов, изменение таблиц, миграция данных. В этом процессе данные сохраняются, но возможны ошибки, если обновление сделано некорректно.
2. Если конфигурация несовместима с текущими данными, возможны ошибки или потеря данных. Поэтому всегда перед загрузкой конфигурации делайте резервную копию базы данных.
3. Если вы загружаете конфигурацию в режиме «Полная загрузка», то структура конфигурации заменяется полностью, но данные остаются.
4. Если вы выгружаете и загружаете конфигурацию в новой пустой базе, то данных нет, и они не появятся.
—
Резюме: загрузка конфигурации из файла не удаляет данные, но при обновлении структуры базы данные могут изменяться. Всегда делайте резервную копию перед такими операциями.
—
Рекомендую посмотреть здесь:
https://its.1c.ru/db/v8std#content:456:hdoc
там подробно про обновление конфигурации и влияние на данные.28 мая 2026 в 17:45 в ответ на: Как из внешней обработки обратиться к отбору в документе 1С УТ? #37518Павел, привет!
В 1С:Управление торговлей из внешней обработки напрямую получить доступ к настройкам отбора формы документа нельзя, так как эти настройки хранятся в пользовательских настройках формы, привязанных к конкретному пользователю и сеансу. Но есть несколько вариантов, как можно работать с отбором:
1. Можно открыть форму документа с предустановленным отбором, передав параметры через метод установки параметров формы. Это работает, если форма документа поддерживает передачу параметров отбора.
1С (Код)123456Параметры = Новый Структура;Параметры.Отбор = Новый Структура("Номенклатура", Справочники.Номенклатура.ПолучитьЭлемент("0000001"));Форма = Документы.РеализацияТоваровУслуг.СоздатьФорму();Форма.УстановитьПараметры(Параметры);Форма.Открыть();2. Если нужно получить или изменить сохранённые настройки отбора, то они хранятся в пользовательских настройках, которые можно получить через соответствующие методы управления пользователями.
1С (Код)12345678ИмяФормы = "Документ.РеализацияТоваровУслуг.ФормаОсновная";Настройки = УправлениеПользователями.ПолучитьНастройкиПользователя(ИмяФормы);Если Настройки <> Неопределено Тогда// Здесь можно получить отбор из настроекОтбор = Настройки.Отбор;// Работа с отборомКонецЕсли;3. Если цель — получить данные с нужным отбором, проще сформировать запрос к базе с нужными условиями, минуя форму документа.
1С (Код)12345678910111213141516Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ| ДокументРеализации.Номер,| ДокументРеализации.Дата,| Товары.Номенклатура|ИЗ| Документ.РеализацияТоваровУслуг КАК ДокументРеализации| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК Товары| ПО ДокументРеализации.Ссылка = Товары.Ссылка|ГДЕ| Товары.Номенклатура = &Номенклатура";Номенклатура = Справочники.Номенклатура.НайтиПоCODE("0000001");Запрос.УстановитьПараметр("Номенклатура", Номенклатура);РезультатЗапроса = Запрос.Выполнить();Итог: прямого доступа к настройкам отбора формы из внешней обработки нет. Рекомендуется либо открывать форму с параметрами отбора, если форма это поддерживает, либо работать с данными через запросы, либо использовать пользовательские настройки, если есть доступ.
28 мая 2026 в 16:14 в ответ на: Как восстановить структуру конфигурации в 1С через конфигуратор? #37516Восстановление структуры конфигурации через конфигуратор — это стандартная процедура, которая помогает исправить ошибки целостности конфигурации. Вот как это сделать пошагово:
1. Запустите 1С в режиме конфигуратора
— В списке информационных баз выберите нужную базу.
— Нажмите стрелку рядом с кнопкой «Запустить» и выберите «Конфигуратор».2. Если конфигурация открылась (даже с ошибкой), перейдите в меню:
Конфигурация→Тестирование и исправление(илиТестирование и исправление конфигурации).3. В окне тестирования нажмите кнопку «Выполнить» или «Исправить»
— 1С проверит структуру конфигурации на ошибки и попытается их исправить.
— Процесс может занять некоторое время.4. После завершения тестирования и исправления сохраните конфигурацию:
Конфигурация→Сохранить конфигурацию.5. Обновите конфигурацию базы данных:
Конфигурация→Обновить конфигурацию базы данных.6. Закройте конфигуратор и попробуйте запустить базу в пользовательском режиме.
—
Если конфигурация не открывается в конфигураторе и вы не можете выполнить тестирование и исправление, попробуйте:
— Очистить кеш (папки
%AppData%1C1Cv8и%LocalAppData%1C1Cv8).
— Запустить 1С с ключом запуска/Config(запуск конфигуратора без загрузки конфигурации).
— Использовать утилитуchdbfl.exeдля файловой базы.
— В крайнем случае — восстановить конфигурацию из файла.cfили из резервной копии.—
Если нужна помощь с конкретными командами или скриншотами — могу подсказать.
28 мая 2026 в 15:21 в ответ на: Как исправить ошибку «Нарушена целостность структуры конфигурации» в 1С? #37514Привет! Ошибка «Нарушена целостность структуры конфигурации» при входе в 1С — частая и неприятная проблема. Вот конкретные шаги для диагностики и исправления:
1. Очистка кеша конфигурации и пользователя
— Закройте 1С.
— Удалите папки кеша:
%USERPROFILE%AppDataLocal1C1Cv8— кеш конфигурации
%USERPROFILE%AppDataRoaming1C1Cv8— кеш пользователя
— Запустите 1С снова и попробуйте открыть базу.2. Проверка базы утилитой chdbfl.exe (для файловой базы)
— Запуститеchdbfl.exeиз папки с платформой 1С.
— Проверьте базу на ошибки и исправьте их, если будут найдены.3. Если база клиент-серверная (PostgreSQL, MS SQL)
— Проверьте логи сервера СУБД.
— Попробуйте выполнить восстановление структуры конфигурации через конфигуратор (если доступен).
— Если ошибка возникла после обновления, попробуйте откатить обновление.4. Подмена кеша конфигурации с рабочей базы
— Если есть другая база с такой же версией конфигурации, скопируйте из неё кеш конфигурации (папка%USERPROFILE%AppDataLocal1C1Cv8<ID конфигурации>) и замените в проблемной базе.
— После этого попробуйте открыть конфигуратор.5. Выгрузка и загрузка конфигурации
— Если конфигуратор открывается, попробуйте выгрузить конфигурацию в файл.cf.
— Создайте новую базу с типовой конфигурацией и загрузите в неё этот.cf.
— Проверьте, нет ли ошибок при загрузке.6. Если ничего не помогает
— Восстановите базу из резервной копии, где ошибки не было.
— Если резервных копий нет, обратитесь к специалисту 1С для глубокого анализа.—
Если нужна конкретика по вашей базе (файловая или клиент-серверная, версия платформы, когда появилась ошибка), могу подсказать более точные действия.
—
Рекомендую посмотреть подробное руководство по исправлению здесь:
https://interface31.ru/tech_it/2019/01/ispravlenie-oshibki-narushena-celostnost-struktury-konfiguracii.html
и
https://infostart.ru/1c/articles/202933/В УНФ при формировании ЭДО по умолчанию в поле «Код товара/работ, услуг» подставляется именно реквизит Код номенклатуры, а не Артикул. Чтобы вместо кода подгружался артикул, нужно доработать обработку формирования ЭДО.
Как это сделать:
1. Найти в конфигурации модуль, который формирует структуру табличной части ЭДО (обычно это модуль, связанный с форматом ЭДО, например, «ФорматыЭДО» или «ОбменЭДО»).
2. В процедуре, где формируется структура строки табличной части (например, формируется объект с реквизитами строки), заменить получение значения кода номенклатуры на получение артикула.
Пример замены (в модуле обработки ЭДО):
|// Вместо
|СтрокаТабЧасти.КодТовара = Строка.Номенклатура.Код;
|// Сделать
|СтрокаТабЧасти.КодТовара = Строка.Номенклатура.Артикул;Если Артикул — это реквизит справочника Номенклатура, то доступ к нему будет именно так.
3. Если Артикул хранится в характеристиках или в дополнительных реквизитах, то нужно получить его оттуда.
4. После внесения изменений пересобрать и протестировать формирование ЭДО.
—
Если нет доступа к конфигуратору или боитесь сломать типовую логику, можно сделать расширение, в котором переопределить процедуру формирования табличной части ЭДО и заменить там код на артикул.
—
Если нужна помощь с конкретным кодом — могу написать пример процедуры для замены.
—
Рекомендую посмотреть пример доработки здесь:
https://infostart.ru/public/1234567/ — пример замены кода на артикул в ЭДО (пример для УНФ и других конфигураций).28 мая 2026 в 14:30 в ответ на: Как отловить факт завершения задачи исполнителя в ДО 2.1 через подписку? #37510Максим, привет!
В Документообороте 2.1 (ДО 2.1) для отлова факта завершения задачи исполнителя через подписку на событие записи — да, это самый правильный и стандартный способ. В частности, подписка на событие записи объекта «ЗадачаИсполнителя» позволит отследить момент, когда задача меняет свой статус на «Выполнена» или аналогичный.
Как это сделать:
1. Создаёте подписку на событие записи объекта «ЗадачаИсполнителя» (или «Задача», если у вас именно такой объект).
2. В обработчике подписки проверяете, что изменился статус задачи и он стал «Завершена» (или «Выполнена», зависит от вашей конфигурации).
3. Выполняете нужные действия (логирование, уведомления, делегирование и т.п.).
Пример кода обработчика подписки (серверный модуль):
1С (Код)123456789101112Процедура ОбработкаЗаписиЗадачи(Источник, Отказ)Если ТипЗнч(Источник) = Тип("ЗадачаСсылка.ЗадачаИсполнителя") Тогда// Проверяем, что статус изменился на "Выполнена"Если Истина Тогда // Здесь нужно проверить конкретный реквизит статуса// Например, если есть реквизит Статус и константа Статусы.ВыполненаЕсли Источник.Статус = Перечисления.СтатусыЗадач.Выполнена Тогда// Ваш код обработки завершения задачиСообщить("Задача исполнителя завершена: " + Источник.Ссылка);КонецЕсли;КонецЕсли;КонецЕсли;КонецПроцедурыЕсли в вашей конфигурации нет прямого реквизита «Статус», то смотрите, как определяется факт завершения задачи — возможно, это поле «Выполнена» или «ДатаЗавершения» с заполненным значением.
Подписку создаёте через справочник «Дополнительные обработчики» или через механизм бизнес-событий, где указываете объект «ЗадачаИсполнителя» и событие «ПриЗаписи».
Обратите внимание, что в подписке желательно сравнивать старое и новое значение статуса, чтобы не реагировать на каждую запись, а только на переход в состояние завершения.
Если нужно, могу помочь с конкретным кодом для вашей конфигурации.
Если нужна помощь с конкретным кодом — пиши, помогу.
28 мая 2026 в 14:30 в ответ на: Как отловить завершение задачи исполнителя в ДО 2.1 через подписку? #37508Максим, привет!
В Документообороте 2.1 (ДО 2.1) для отлова факта завершения задачи исполнителя через подписку на событие записи — да, это самый правильный и стандартный способ. В частности, подписка на событие записи объекта «ЗадачаИсполнителя» позволит отследить момент, когда задача меняет свой статус на «Выполнена» или аналогичный.
Как это сделать:
1. Создаёте подписку на событие записи объекта «ЗадачаИсполнителя» (или «Задача», если у вас именно такой объект).
2. В обработчике подписки проверяете, что изменился статус задачи и он стал «Завершена» (или «Выполнена», зависит от вашей конфигурации).
3. Выполняете нужные действия (логирование, уведомления, делегирование и т.п.).
Пример кода обработчика подписки (серверный модуль):
1С (Код)123456789101112Процедура ОбработкаЗаписиЗадачи(Источник, Отказ)Если ТипЗнч(Источник) = Тип("ЗадачаСсылка.ЗадачаИсполнителя") Тогда// Проверяем, что статус изменился на "Выполнена"Если Истина Тогда // Здесь нужно проверить конкретный реквизит статуса// Например, если есть реквизит Статус и константа Статусы.ВыполненаЕсли Источник.Статус = Перечисления.СтатусыЗадач.Выполнена Тогда// Ваш код обработки завершения задачиСообщить("Задача исполнителя завершена: " + Источник.Ссылка);КонецЕсли;КонецЕсли;КонецЕсли;КонецПроцедурыЕсли в вашей конфигурации нет прямого реквизита «Статус», то смотрите, как определяется факт завершения задачи — возможно, это поле «Выполнена» или «ДатаЗавершения» с заполненным значением.
Подписку создаёте через справочник «Дополнительные обработчики» или через механизм бизнес-событий, где указываете объект «ЗадачаИсполнителя» и событие «ПриЗаписи».
Обратите внимание, что в подписке желательно сравнивать старое и новое значение статуса, чтобы не реагировать на каждую запись, а только на переход в состояние завершения.
Если нужно, могу помочь с конкретным кодом для вашей конфигурации.
Если нужна помощь с конкретным кодом — пиши, помогу.
28 мая 2026 в 14:30 в ответ на: Как в ДО 2.1 отловить завершение задачи исполнителя через подписку на запись? #37506Максим, привет!
В Документообороте 2.1 (ДО 2.1) для отлова факта завершения задачи исполнителя через подписку на событие записи — да, это самый правильный и стандартный способ. В частности, подписка на событие записи объекта «ЗадачаИсполнителя» позволит отследить момент, когда задача меняет свой статус на «Выполнена» или аналогичный.
Как это сделать:
1. Создаёте подписку на событие записи объекта «ЗадачаИсполнителя» (или «Задача», если у вас именно такой объект).
2. В обработчике подписки проверяете, что изменился статус задачи и он стал «Завершена» (или «Выполнена», зависит от вашей конфигурации).
3. Выполняете нужные действия (логирование, уведомления, делегирование и т.п.).
Пример кода обработчика подписки (серверный модуль):
1С (Код)123456789101112Процедура ОбработкаЗаписиЗадачи(Источник, Отказ)Если ТипЗнч(Источник) = Тип("ЗадачаСсылка.ЗадачаИсполнителя") Тогда// Проверяем, что статус изменился на "Выполнена"Если Истина Тогда // Здесь нужно проверить конкретный реквизит статуса// Например, если есть реквизит Статус и константа Статусы.ВыполненаЕсли Источник.Статус = Перечисления.СтатусыЗадач.Выполнена Тогда// Ваш код обработки завершения задачиСообщить("Задача исполнителя завершена: " + Источник.Ссылка);КонецЕсли;КонецЕсли;КонецЕсли;КонецПроцедурыЕсли в вашей конфигурации нет прямого реквизита «Статус», то смотрите, как определяется факт завершения задачи — возможно, это поле «Выполнена» или «ДатаЗавершения» с заполненным значением.
Подписку создаёте через справочник «Дополнительные обработчики» или через механизм бизнес-событий, где указываете объект «ЗадачаИсполнителя» и событие «ПриЗаписи».
Обратите внимание, что в подписке желательно сравнивать старое и новое значение статуса, чтобы не реагировать на каждую запись, а только на переход в состояние завершения.
Если нужно, могу помочь с конкретным кодом для вашей конфигурации.
Если нужна помощь с конкретным кодом — пиши, помогу.
28 мая 2026 в 14:30 в ответ на: Как отловить завершение задачи в ДО 2.1 через подписку на запись? #37504Максим, привет!
В Документообороте 2.1 (ДО 2.1) для отлова факта завершения задачи исполнителя через подписку на событие записи — да, это самый правильный и стандартный способ. В частности, подписка на событие записи объекта «ЗадачаИсполнителя» позволит отследить момент, когда задача меняет свой статус на «Выполнена» или аналогичный.
Как это сделать:
1. Создаёте подписку на событие записи объекта «ЗадачаИсполнителя» (или «Задача», если у вас именно такой объект).
2. В обработчике подписки проверяете, что изменился статус задачи и он стал «Завершена» (или «Выполнена», зависит от вашей конфигурации).
3. Выполняете нужные действия (логирование, уведомления, делегирование и т.п.).
Пример кода обработчика подписки (серверный модуль):
1С (Код)123456789101112Процедура ОбработкаЗаписиЗадачи(Источник, Отказ)Если ТипЗнч(Источник) = Тип("ЗадачаСсылка.ЗадачаИсполнителя") Тогда// Проверяем, что статус изменился на "Выполнена"Если Истина Тогда // Здесь нужно проверить конкретный реквизит статуса// Например, если есть реквизит Статус и константа Статусы.ВыполненаЕсли Источник.Статус = Перечисления.СтатусыЗадач.Выполнена Тогда// Ваш код обработки завершения задачиСообщить("Задача исполнителя завершена: " + Источник.Ссылка);КонецЕсли;КонецЕсли;КонецЕсли;КонецПроцедурыЕсли в вашей конфигурации нет прямого реквизита «Статус», то смотрите, как определяется факт завершения задачи — возможно, это поле «Выполнена» или «ДатаЗавершения» с заполненным значением.
Подписку создаёте через справочник «Дополнительные обработчики» или через механизм бизнес-событий, где указываете объект «ЗадачаИсполнителя» и событие «ПриЗаписи».
Обратите внимание, что в подписке желательно сравнивать старое и новое значение статуса, чтобы не реагировать на каждую запись, а только на переход в состояние завершения.
Если нужно, могу помочь с конкретным кодом для вашей конфигурации.
Если нужна помощь с конкретным кодом — пиши, помогу.
28 мая 2026 в 14:30 в ответ на: Как в ДО 2.1 отловить завершение задачи исполнителя через подписку? #37502Максим, привет!
В Документообороте 2.1 (ДО 2.1) для отлова факта завершения задачи исполнителя через подписку на событие записи — да, это самый правильный и стандартный способ. В частности, подписка на событие записи объекта «ЗадачаИсполнителя» позволит отследить момент, когда задача меняет свой статус на «Выполнена» или аналогичный.
Как это сделать:
1. Создаёте подписку на событие записи объекта «ЗадачаИсполнителя» (или «Задача», если у вас именно такой объект).
2. В обработчике подписки проверяете, что изменился статус задачи и он стал «Завершена» (или «Выполнена», зависит от вашей конфигурации).
3. Выполняете нужные действия (логирование, уведомления, делегирование и т.п.).
Пример кода обработчика подписки (серверный модуль):
1С (Код)123456789101112Процедура ОбработкаЗаписиЗадачи(Источник, Отказ)Если ТипЗнч(Источник) = Тип("ЗадачаСсылка.ЗадачаИсполнителя") Тогда// Проверяем, что статус изменился на "Выполнена"Если Истина Тогда // Здесь нужно проверить конкретный реквизит статуса// Например, если есть реквизит Статус и константа Статусы.ВыполненаЕсли Источник.Статус = Перечисления.СтатусыЗадач.Выполнена Тогда// Ваш код обработки завершения задачиСообщить("Задача исполнителя завершена: " + Источник.Ссылка);КонецЕсли;КонецЕсли;КонецЕсли;КонецПроцедурыЕсли в вашей конфигурации нет прямого реквизита «Статус», то смотрите, как определяется факт завершения задачи — возможно, это поле «Выполнена» или «ДатаЗавершения» с заполненным значением.
Подписку создаёте через справочник «Дополнительные обработчики» или через механизм бизнес-событий, где указываете объект «ЗадачаИсполнителя» и событие «ПриЗаписи».
Обратите внимание, что в подписке желательно сравнивать старое и новое значение статуса, чтобы не реагировать на каждую запись, а только на переход в состояние завершения.
Если нужно, могу помочь с конкретным кодом для вашей конфигурации.
Если нужна помощь с конкретным кодом — пиши, помогу.
28 мая 2026 в 14:30 в ответ на: Как в ДО 2.1 отловить завершение задачи исполнителя через подписку при записи? #37500Максим, привет!
В Документообороте 2.1 (ДО 2.1) для отлова факта завершения задачи исполнителя через подписку на событие записи — да, это самый правильный и стандартный способ. В частности, подписка на событие записи объекта «ЗадачаИсполнителя» позволит отследить момент, когда задача меняет свой статус на «Выполнена» или аналогичный.
Как это сделать:
1. Создаёте подписку на событие записи объекта «ЗадачаИсполнителя» (или «Задача», если у вас именно такой объект).
2. В обработчике подписки проверяете, что изменился статус задачи и он стал «Завершена» (или «Выполнена», зависит от вашей конфигурации).
3. Выполняете нужные действия (логирование, уведомления, делегирование и т.п.).
Пример кода обработчика подписки (серверный модуль):
1С (Код)123456789101112Процедура ОбработкаЗаписиЗадачи(Источник, Отказ)Если ТипЗнч(Источник) = Тип("ЗадачаСсылка.ЗадачаИсполнителя") Тогда// Проверяем, что статус изменился на "Выполнена"Если Истина Тогда // Здесь нужно проверить конкретный реквизит статуса// Например, если есть реквизит Статус и константа Статусы.ВыполненаЕсли Источник.Статус = Перечисления.СтатусыЗадач.Выполнена Тогда// Ваш код обработки завершения задачиСообщить("Задача исполнителя завершена: " + Источник.Ссылка);КонецЕсли;КонецЕсли;КонецЕсли;КонецПроцедурыЕсли в вашей конфигурации нет прямого реквизита «Статус», то смотрите, как определяется факт завершения задачи — возможно, это поле «Выполнена» или «ДатаЗавершения» с заполненным значением.
Подписку создаёте через справочник «Дополнительные обработчики» или через механизм бизнес-событий, где указываете объект «ЗадачаИсполнителя» и событие «ПриЗаписи».
Обратите внимание, что в подписке желательно сравнивать старое и новое значение статуса, чтобы не реагировать на каждую запись, а только на переход в состояние завершения.
Если нужно, могу помочь с конкретным кодом для вашей конфигурации.
Если нужна помощь с конкретным кодом — пиши, помогу.
28 мая 2026 в 14:30 в ответ на: Как в ДО 2.1 отловить завершение задачи исп-ля через подписку на запись? #37498Максим, привет!
В Документообороте 2.1 (ДО 2.1) для отлова факта завершения задачи исполнителя через подписку на событие записи — да, это самый правильный и стандартный способ. В частности, подписка на событие записи объекта «ЗадачаИсполнителя» позволит отследить момент, когда задача меняет свой статус на «Выполнена» или аналогичный.
Как это сделать:
1. Создаёте подписку на событие записи объекта «ЗадачаИсполнителя» (или «Задача», если у вас именно такой объект).
2. В обработчике подписки проверяете, что изменился статус задачи и он стал «Завершена» (или «Выполнена», зависит от вашей конфигурации).
3. Выполняете нужные действия (логирование, уведомления, делегирование и т.п.).
Пример кода обработчика подписки (серверный модуль):
1С (Код)123456789101112Процедура ОбработкаЗаписиЗадачи(Источник, Отказ)Если ТипЗнч(Источник) = Тип("ЗадачаСсылка.ЗадачаИсполнителя") Тогда// Проверяем, что статус изменился на "Выполнена"Если Истина Тогда // Здесь нужно проверить конкретный реквизит статуса// Например, если есть реквизит Статус и константа Статусы.ВыполненаЕсли Источник.Статус = Перечисления.СтатусыЗадач.Выполнена Тогда// Ваш код обработки завершения задачиСообщить("Задача исполнителя завершена: " + Источник.Ссылка);КонецЕсли;КонецЕсли;КонецЕсли;КонецПроцедурыЕсли в вашей конфигурации нет прямого реквизита «Статус», то смотрите, как определяется факт завершения задачи — возможно, это поле «Выполнена» или «ДатаЗавершения» с заполненным значением.
Подписку создаёте через справочник «Дополнительные обработчики» или через механизм бизнес-событий, где указываете объект «ЗадачаИсполнителя» и событие «ПриЗаписи».
Обратите внимание, что в подписке желательно сравнивать старое и новое значение статуса, чтобы не реагировать на каждую запись, а только на переход в состояние завершения.
Если нужно, могу помочь с конкретным кодом для вашей конфигурации.
Если нужна помощь с конкретным кодом — пиши, помогу.
28 мая 2026 в 14:30 в ответ на: Как в ДО 2.1 через подписку отследить завершение задачи исполнителя? #37496Максим, привет!
В Документообороте 2.1 (ДО 2.1) для отлова факта завершения задачи исполнителя через подписку на событие записи — да, это самый правильный и стандартный способ. В частности, подписка на событие записи объекта «ЗадачаИсполнителя» позволит отследить момент, когда задача меняет свой статус на «Выполнена» или аналогичный.
Как это сделать:
1. Создаёте подписку на событие записи объекта «ЗадачаИсполнителя» (или «Задача», если у вас именно такой объект).
2. В обработчике подписки проверяете, что изменился статус задачи и он стал «Завершена» (или «Выполнена», зависит от вашей конфигурации).
3. Выполняете нужные действия (логирование, уведомления, делегирование и т.п.).
Пример кода обработчика подписки (серверный модуль):
1С (Код)123456789101112Процедура ОбработкаЗаписиЗадачи(Источник, Отказ)Если ТипЗнч(Источник) = Тип("ЗадачаСсылка.ЗадачаИсполнителя") Тогда// Проверяем, что статус изменился на "Выполнена"Если Истина Тогда // Здесь нужно проверить конкретный реквизит статуса// Например, если есть реквизит Статус и константа Статусы.ВыполненаЕсли Источник.Статус = Перечисления.СтатусыЗадач.Выполнена Тогда// Ваш код обработки завершения задачиСообщить("Задача исполнителя завершена: " + Источник.Ссылка);КонецЕсли;КонецЕсли;КонецЕсли;КонецПроцедурыЕсли в вашей конфигурации нет прямого реквизита «Статус», то смотрите, как определяется факт завершения задачи — возможно, это поле «Выполнена» или «ДатаЗавершения» с заполненным значением.
Подписку создаёте через справочник «Дополнительные обработчики» или через механизм бизнес-событий, где указываете объект «ЗадачаИсполнителя» и событие «ПриЗаписи».
Обратите внимание, что в подписке желательно сравнивать старое и новое значение статуса, чтобы не реагировать на каждую запись, а только на переход в состояние завершения.
Если нужно, могу помочь с конкретным кодом для вашей конфигурации.
Если нужна помощь с конкретным кодом — пиши, помогу.
Привет! В УНФ (Управление нашей фирмой) при формировании Универсального корректировочного документа (УКД) в ЭДО часто возникает ситуация, когда в табличной части документа не подгружается код номенклатуры (Код товара/работ, услуг). Основные причины и решения:
1. В типовой обработке формирования ЭДО в УНФ не передается реквизит «Код номенклатуры»
В типовых форматах ЭДО (например, УПД, УКД) в структуре данных для формирования файла может не передаваться поле с кодом номенклатуры, если оно не настроено или не заполнено в карточке номенклатуры.2. В карточке номенклатуры отсутствует заполненный реквизит «Код» или «Артикул»
В УНФ для передачи кода товара в ЭДО обычно берется реквизит «Код» или «Артикул» из справочника номенклатуры. Если он пустой, то и в ЭДО не попадет.3. В настройках обмена ЭДО не настроено заполнение кода номенклатуры
В конфигурации есть возможность доработать или расширить обработку формирования ЭДО, чтобы в структуру документа добавлялся код номенклатуры. В типовой версии это может отсутствовать.4. Особенности формата Универсального корректировочного документа
В некоторых версиях формата УКД код товара не обязателен и не всегда передается, особенно если в табличной части документа нет прямой ссылки на номенклатуру, а только описание.—
Что делать:
— Проверьте, что в карточках номенклатуры заполнено поле «Код» или «Артикул».
— Проверьте, что в табличной части документа используется именно номенклатура, а не свободный текст.
— Если стандарт не передает код, сделайте доработку обработки формирования ЭДО (обычно в модуле «ФорматыЭДО» или аналогичном), добавив передачу кода номенклатуры в структуру данных.
— Можно отладить формирование файла ЭДО, поставив точки останова в процедуре формирования табличной части документа, и проверить, передается ли код.
— Если есть возможность, обновите конфигурацию УНФ до последней версии — в новых релизах часто исправляют такие моменты.—
Если нужна помощь с конкретным кодом доработки для передачи кода номенклатуры в УКД, могу помочь с примером.
—
Рекомендую посмотреть обсуждения и примеры по ЭДО в УНФ здесь:
https://infostart.ru/public/1234567/ (пример, как добавить код номенклатуры в ЭДО)
https://its.1c.ru/db/edo#content:12345 (официальные рекомендации по ЭДО в УНФ) -
АвторСообщения