Г
DEV1C-32301карта удаления · списания Гуидо · ред. 2026-06-02
Карта удаления · инвентаризация кодовой базы

ТМЦ исполнителей: убрать неиспользуемый функционал

Гуидо перевели обмен ТМЦ на 1С:Шину. Механизм создания списаний по HTTP-очереди (DEV1C-30408) подлежит удалению. Отчёт показывает, как всё устроено сейчас, что именно безопасно убрать и в каком порядке.

go: функционал убираем DEV1C-32301 · In Progress часть блокирована 32109

Цель. Убрать механизм DEV1C-30408 (HTTP-очередь списаний Гуидо), не задев боевой механизм создания «Перемещение запасов» и общие объекты системы.

Решение go/no-go. Геннадий подтвердил: функционал убираем.

Все факты ниже перепроверены по исходникам (src/cf, src/cfe) 2026-06-02: номера строк, рубильники, цепочка вызова эндпоинта, отсутствие внутренних вызовов точек входа.

Главный вывод

«Перемещение запасов / Списание на расходы» создаётся двумя независимыми путями. В проде живёт Path B (списания при записи документа ОУП). Path A (HTTP-очередь, DEV1C-30408) спящий — рубильник = Ложь. Удаляем только Path A. Path B остаётся — это единственный механизм формирования Перемещений из ОУП, 32109 его не замещает (лишь меняет источник наполнения ОУП).

Как работает сейчас

Документ «Перемещение запасов» с видом операции «Списание на расходы» по обслуживаниям Гуидо может создаваться двумя разными механизмами. Это ключ ко всей задаче: удаляемый функционал — только один из них.

Path A — HTTP-очередь (DEV1C-30408, спящий)

Двусоставной путь, рубильник Guido_СоздаватьСписанияИзGuidoПоОчередиДанныхHTTPСервиса (в проде = Ложь):

  • Вход: Гуидо POST-ом шлёт uuid задачи в эндпоинт createcompletedtask — uuid пишется в очередь-регистр DM_Guido_ЗадачиСоСписаниемЗапасов (Обработано = Ложь).
  • Разбор: процедура Guido_ОбработкаОчередиСписаний_СозданиеСписания читает очередь, опрашивает Гуидо через GET performed-tasks и формирует «Перемещение запасов».

Path B — при записи ОУП (боевой)

Рубильник GUIDO_ЗагружатьСписанияОтдельноОтРабот (в проде = Ложь): после записи документа «Оказание услуг поставщиком» (ОУП) внешняя доп.обработка «Обработка после записи регламентное» вызывает ОбработатьПослеЗаписиСоздатьЗакрывающиеДокументыссо_СписаниеДавальческихМатериалов.СФормироватьСписаниеНаОсновании, и «Перемещение запасов» формируется по данным самого ОУП (без опроса Гуидо).

Что меняет DEV1C-32109

Новый механизм дм_ОбслуживанияГуидо меняет только источник наполнения ОУП: ТМЦ приходят в 1С:Шину массивом items[] и раскладываются в табличную часть «Списанные товары» по uuid_1c. Сам модуль «Перемещение запасов» не создаёт (проверено: ноль упоминаний ПеремещениеЗапасов / ссо_ в модуле). Перемещение по-прежнему делает Path B.

Инцидент 22.05 как доказательство, что живёт Path B

Отключение доп.обработки «Обработка после записи Оказание услуг поставщиком» остановило создание «Перемещение запасов» — обработку вернули. Значит боевой путь — Path B, а Path A с рубильником = Ложь фактически не работает.

Эндпоинт createcompletedtask — разобран

Ранее ошибочно считали «POST-ручки нет». Ручка есть — это data-driven маршрут в расширении ЗапросыИзВнешнихСистем. Имя createcompletedtask не встречается в коде литералом, потому что это ключ маршрутизации, хранящийся в справочнике DM_Параметры.

Цепочка вызова POST createcompletedtask (проверено по исходникам)
ШагЧто происходитГде
1. HTTP-сервис URL-шаблон /{ИмяМетода} (catch-all), POST → метод v1post cfe/ЗапросыИзВнешнихСистем/HTTPServices/API/Ext/Module.bsl:8
2. Делегирование v1postдмЗапросыИзВнешнихСистем.ВыполнитьМетодHTTPСервиса(Запрос) cf/CommonModules/дмЗапросыИзВнешнихСистем/Ext/Module.bsl
3. Диспетчер по ИмяМетода = createcompletedtask ищет одноимённый параметр в DM_ЗначенияПараметров → имя модуля ЗИВС_ПолучениеЗадачСоСписаниямиВычислить("…ОбработатьЗапрос(Запрос)") тот же модуль; нет параметра → 404 «Метод отсутствует»
4. Обработчик принимает POST { "uuid": "…" }, пишет запись в РС DM_Guido_ЗадачиСоСписаниемЗапасов (Обработано = Ложь) cfe/ЗапросыИзВнешнихСистем/CommonModules/ЗИВС_ПолучениеЗадачСоСписаниями/Ext/Module.bsl

Почему пометка параметра на удаление = выключение ручки

Удаление/отключение параметра-маршрута createcompletedtask в DM_Параметры заставляет диспетчер вернуть 404 «Метод отсутствует» — эндпоинт гаснет без правки кода. Это уже сделано в проде (комм. Николаенко, 2026-05-19). HTTP-сервис API, метод v1post и диспетчер дмЗапросыИзВнешнихСистем — общий catch-all на десятки методов ЗИВС, их не трогаем.

Схема потоков

Path A — HTTP-очередь (DEV1C-30408) · на удаление рубильник Guido_СоздаватьСписанияИзGuidoПоОчередиДанныхHTTPСервиса = Ложь · СПЯЩИЙ POST createcompletedtask ЗИВС_ПолучениеЗадач… РС очередь задач DM_Guido_ЗадачиСоСписанием ОбработкаОчередиСписаний + GET performed-tasks Перемещение запасов Списание на расходы Path B — при записи ОУП (боевой) · остаётся, не удаляем рубильник GUIDO_ЗагружатьСписанияОтдельноОтРабот = Ложь · РАБОЧИЙ Запись ОУП items[] из 1С:Шина (32109) ОбработатьПослеЗаписи доп.обработка (внешняя EPF) ссо_Списание… СозданиеСвязанныхОбъектов Сплошной зелёный — активный поток (Path B). Пунктир жёлтый — спящий поток (Path A, на удаление). Красный узел — общий целевой документ.

Path A vs Path B — сравнение

Источник: «Карта удаления», description.md (2026-06-02, перепроверено)
ПризнакPath A — HTTP-очередьPath B — при записи ОУП
Рубильник (DM_Параметры) Guido_СоздаватьСписанияИзGuidoПоОчередиДанныхHTTPСервиса GUIDO_ЗагружатьСписанияОтдельноОтРабот
Значение в проде Ложь → спящий Ложь → рабочий
Точка входа DM_ОбщегоНазначенияСервер.Guido_ОбработкаОчередиСписаний_* (стр. 3173, 3461) дмОказаниеУслугПоставщиком.ОбработатьПослеЗаписи → СоздатьЗакрывающиеДокументы → ссо_СписаниеДавальческихМатериалов.СФормироватьСписаниеНаОсновании
Опрос Гуидо GET performed-tasks нет (по данным записанного ОУП)
Вход данных POST createcompletedtask → очередь-РС ТМЦ в ОУП: 1С:Шина items[] (32109) или старый performed-tasks

Что удаляем по DEV1C-32301

Удаляется только Path A — функционал DEV1C-30408 (HTTP-очередь списаний). Это спящий механизм, его удаление не влияет на боевое формирование «Перемещение запасов».

  • Удаляем: эндпоинт-маршрут, очередь-регистр, процедуры разбора очереди, рубильник Path A (Группа 1).
  • Оставляем (НЕ удаляем): Path B — единственный механизм формирования Перемещений из ОУП (Группа 2). Альтернативы ему нет: 32109 Перемещение не создаёт. Path B не гасится. После удаления Path A — только упростить его (убрать ветку рубильника, всегда вызывать СоздатьЗакрывающиеДокументы).
  • Не трогаем никогда: общие объекты — параметры подключения к API Guido, обмен с бухгалтерией, общесистемное перечисление вида операции (Группа 3).

Как удалять — пошагово

Этап 1. Path A (можно делать сразу)

  1. Маршрут createcompletedtask в DM_Параметры — оставить помеченным на удаление / удалить запись. Эндпоинт сразу начнёт отдавать 404, код HTTP не правим. В проде уже помечен.
  2. Найти и снять регламентное задание / доп.обработку, вызывающую Guido_ОбработкаОчередиСписаний_СозданиеСписания и …_СвязываниеСписанияОказанияУслугПоставщиков (прямых вызовов в коде нет — запуск внешний). Без этого процедуры останутся «висящими».
  3. Удалить процедуры Guido_ОбработкаОчередиСписаний_СозданиеСписания (стр. 3173) и …_СвязываниеСписанияОказанияУслугПоставщиков (стр. 3461) в DM_ОбщегоНазначенияСервер.
  4. Удалить общий модуль ЗИВС_ПолучениеЗадачСоСписаниями (расш. ЗапросыИзВнешнихСистем) — эксклюзивен этому механизму.
  5. Удалить регистр сведений DM_Guido_ЗадачиСоСписаниемЗапасов (после удаления процедур, которые его читают/пишут).
  6. Удалить параметр-рубильник Guido_СоздаватьСписанияИзGuidoПоОчередиДанныхHTTPСервиса в DM_Параметры.
  7. Проверить параметры из списка «на проверку» (см. ниже) — удалять только те, что не используются Path B.

Не удалять при чистке Path A

HTTP-сервис API, метод v1post, модуль-диспетчер дмЗапросыИзВнешнихСистем — общий catch-all для десятков методов ЗИВС. Удаляем только запись-маршрут в DM_Параметры, не сам сервис.

Этап 2. Упрощение Path B (после подтверждения 32109) — НЕ удаление

Path B остаётся работать — это единственный механизм формирования Перемещений. Удалять его нельзя: иначе Перемещения перестанут создаваться. После того как аналитик подтвердит корректность потока через 1С:Шину, делается только зачистка следов Path A в точке Path B:

  1. В ОбработатьПослеЗаписи убрать ветку Если Не СписаниеОтдельноОтРабот — всегда вызывать СоздатьЗакрывающиеДокументы (после удаления Path A режим «отдельно от работ» ведёт в никуда).
  2. Упразднить рубильник GUIDO_ЗагружатьСписанияОтдельноОтРабот в DM_Параметры.

Модуль ссо_СписаниеДавальческихМатериалов и СоздатьЗакрывающиеДокументы не удаляем — они и есть боевой механизм; ссо_ вдобавок используется ЗаказомПоставщику.

Группа 1 — Path A: удалить, низкий риск

удалить спящий механизм
Path A — спящий путь HTTP-очереди (рубильник = Ложь)
ОбъектПутьЭксклюзивность
Параметр-маршрут createcompletedtask (знач. ЗИВС_ПолучениеЗадачСоСписаниями) данные в БД — в проде помечен на удаление только этот механизм
Общий модуль ЗИВС_ПолучениеЗадачСоСписаниями cfe/ЗапросыИзВнешнихСистем/CommonModules/ЗИВС_ПолучениеЗадачСоСписаниями/Ext/Module.bsl только этот механизм
РС DM_Guido_ЗадачиСоСписаниемЗапасов (изм. ИдентификаторЗадачи, рес. Обработано) cf/InformationRegisters/DM_Guido_ЗадачиСоСписаниемЗапасов.xml только этот механизм
Процедура Guido_ОбработкаОчередиСписаний_СозданиеСписания DM_ОбщегоНазначенияСервер/Ext/Module.bsl:3173 вызовов в исходниках нет (запуск извне)
Процедура Guido_ОбработкаОчередиСписаний_СвязываниеСписанияОказанияУслугПоставщиков DM_ОбщегоНазначенияСервер/Ext/Module.bsl:3461 то же
Параметр-рубильник Guido_СоздаватьСписанияИзGuidoПоОчередиДанныхHTTPСервиса DM_Параметры только Path A

Группа 2 — Path B: живой, НЕ удалять

оставить — альтернативы нет боевой механизм

Path B — единственный механизм формирования Перемещений из ОУП. Не удаляется в рамках 32301. Правки ниже — только следствие удаления Path A.

Path B — текущий рабочий путь создания списаний
ОбъектПутьПримечание
ОбработатьПослеЗаписи + СоздатьЗакрывающиеДокументы cfe/RMS_Карсервис/Documents/дмОказаниеУслугПоставщиком/Ext/ManagerModule.bsl:38 боевая точка; оставить. После удаления Path A — упростить (убрать ветку рубильника)
Модуль ссо_СписаниеДавальческихМатериалов (СФормироватьСписаниеНаОсновании, ДобавитьВОчередьНаПроведение) cfe/СозданиеСвязанныхОбъектов/CommonModules/ссо_СписаниеДавальческихМатериалов/Ext/Module.bsl (есть в репозитории) используется также ЗаказомПоставщику, не только Гуидо — целиком не удалять
Параметр GUIDO_ЗагружатьСписанияОтдельноОтРабот DM_Параметры переключатель A/B. После удаления Path A ветка «Истина» тупиковая — упразднить, оставив «всегда Path B»

Группа 3 — общие объекты: НЕ удалять

оставить используются вне Гуидо
  • Параметры подключения к API Guido (Имя_сервера_API_GUIDO, Порт_сервера_API_GUIDO, Authorization_Tokin_API_GUIDO, Login_API_GUIDO, Pass_API_GUIDO) — используются также дмGuidoОбменНоменклатуройИОстатками, дмGuidoОбменОстатками.
  • МенеджерОбменаЧерезУниверсальныйФормат + ПКО Документ_ПеремещениеЗапасов_НаРасходы_Отправка (МенеджерОбменаЧерезУниверсальныйФормат/Ext/Module.bsl ~452, ~24239) — обмен с бухгалтерией для всех «Списание на расходы», не только Гуидо.
  • Перечисление ВидыОперацийПеремещениеЗапасов.СписаниеНаРасходы — общесистемное.

Параметры Path A, требующие проверки перед удалением

Перед удалением убедиться, что эти параметры не задействованы в Path B:

Проверить перекрёстное использование

Guido_АдресМетодаВыполненныхЗаданий, Guido_ДопСведениеИдентификаторОказанияУслугДляСписанияНаРасходы, Guido_ВидРемонтаСписанияНаРасходы, Guido_СписаниеНаРасходы_КомментарийДокументов, ПолучательПеремещениеМ15Списание, GUIDO_Контрагент.

Статус DEV1C-32109 и порядок удаления

Последовательность

1. Гуидо уже отправляют ТМЦ через 1С:Шину; 32109 наполняет ОУП из items[].

2. Подтвердить у аналитика, что целевой поток «шина → ОУП → Path B → Перемещение» работает (см. вопрос ниже).

3. Удалить Path A (Этап 1, Группа 1).

4. Упростить Path B — убрать ветку рубильника (Этап 2). Path B НЕ удаляется.

Вопрос аналитику (блокирует физическое удаление Path A)

Гуидо уже шлют ТМЦ через шину. Подтвердить корректность потока:

  • Все ли обслуживания с ТМЦ идут через шину, или часть ещё через performed-tasks?
  • По обслуживаниям из шины Перемещение «Списание на расходы» точно формируется (Path B отрабатывает)?
  • Нет ли задвоения списаний, если по одному uuid пришли и шина (items[]), и performed-tasks?

Открытые вопросы

  1. Go/no-go: решение Гены утвердительное — функционал убираем. закрыт
  2. Эндпоинт createcompletedtask — реален, это data-driven POST-маршрут в расш. ЗапросыИзВнешнихСистем (диспетчер по параметру DM_Параметры → модуль ЗИВС_ПолучениеЗадачСоСписаниями). Формулировка постановки верна. закрыт
  3. Расш. «Создание связанных объектов» присутствует в этом репозитории (cfe/СозданиеСвязанныхОбъектов), отдельный доступ не нужен. уточнён
  4. «Новый путь формирования Перемещений» — неточная формулировка. 32109 меняет только источник наполнения ОУП; Перемещение формирует прежний Path B. уточнён
  5. Поток через 1С:Шину — подтвердить у аналитика (см. раздел «Статус 32109»). От ответа зависит старт Этапа 2. к аналитику

Источник фактов: tasks/2026-06/DEV1C-32301-…/description.md (раздел «Карта удаления», инвентаризация 2026-06-02, перепроверена по исходникам). Связанные задачи: DEV1C-30408 (функционал к удалению), DEV1C-32109 (новый механизм через 1С:Шину).