База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как в 1С:КА автоматизировать установку статуса расходного ордера «Отгружён»?
- В этой теме 1 ответ, 2 участника, последнее обновление 14 часов, 31 минута назад сделано
Odin — Одинэсник.
-
АвторЗаписи
-
-
9 ноября 2026 в 3:39 #38978
Как установить статус расходного ордера «отгружён» при проведении реализации товаров и услуг. 1с ка
-
9 ноября 2026 в 3:39 #38979
В 1С:КА 2.5 статус расходного ордера «Отгружен» обычно не устанавливается автоматически при проведении документа «Реализация товаров и услуг». Это разные этапы:
1. Расходный ордер на товары подтверждает фактическую отгрузку со склада.
2. Реализация товаров и услуг отражает продажу и списание товара.
3. Статус расходного ордера меняется либо кладовщиком вручную, либо программно до или после проведения реализации.## Штатный вариант
Рекомендуемая последовательность в КА:
1. Создать заказ клиента.
2. Создать на его основании расходный ордер на товары.
3. В расходном ордере установить статус «Отгружен».
4. Провести расходный ордер.
5. Создать реализацию товаров и услуг на основании заказа или распоряжения.
6. Провести реализацию.Если реализация уже проведена, а расходный ордер остался в статусе «К отгрузке», его можно открыть и вручную изменить статус на «Отгружен», если это соответствует фактической операции.
## Важный момент
Не рекомендуется менять статус расходного ордера непосредственно из формы реализации в клиентском обработчике. Пользователь может провести реализацию:
— из списка документов;
— регламентным заданием;
— групповым проведением;
— через обмен;
— программно серверным кодом.Поэтому автоматизацию лучше делать через расширение конфигурации и обработчик записи или проведения документа «Реализация товаров и услуг».
## Общий алгоритм доработки
При проведении реализации нужно:
1. Найти связанные расходные ордера.
2. Проверить, что реализация проведена.
3. Проверить, что расходный ордер относится к этой реализации или к тому же заказу клиента.
4. Установить статус расходного ордера:Перечисления.СтатусыРасходныхОрдеров.Отгружен5. Записать или перепровести расходный ордер.
6. Не выполнять повторную обработку, если ордер уже имеет статус «Отгружен».Упрощенный пример серверной процедуры:
1С (Код)12345678910111213141516171819202122232425262728293031323334353637383940414243444546&НаСервереПроцедура УстановитьСтатусРасходныхОрдеров(РеализацияСсылка) ЭкспортЕсли Не ЗначениеЗаполнено(РеализацияСсылка) ТогдаВозврат;КонецЕсли;РеализацияОбъект = РеализацияСсылка.ПолучитьОбъект();Если Не РеализацияОбъект.Проведен ТогдаВозврат;КонецЕсли;// Далее необходимо получить расходные ордера,// связанные с данной реализацией.//// Конкретный способ поиска зависит от версии КА 2.5:// через распоряжение, заказ клиента или связь документов.Для Каждого РасходныйОрдерСсылка Из ПолучитьРасходныеОрдера(РеализацияСсылка) ЦиклЕсли Не ЗначениеЗаполнено(РасходныйОрдерСсылка) ТогдаПродолжить;КонецЕсли;РасходныйОрдерОбъект = РасходныйОрдерСсылка.ПолучитьОбъект();Если РасходныйОрдерОбъект.Статус<> Перечисления.СтатусыРасходныхОрдеров.Отгружен ТогдаРасходныйОрдерОбъект.Статус =Перечисления.СтатусыРасходныхОрдеров.Отгружен;Если РасходныйОрдерОбъект.Проведен ТогдаРасходныйОрдерОбъект.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);ИначеРасходныйОрдерОбъект.Записать();КонецЕсли;КонецЕсли;КонецЦикла;КонецПроцедурыПроцедура
ПолучитьРасходныеОрдера()в данном примере условная. Ее нужно реализовать с учетом структуры конкретной версии КА.## Поиск связанных расходных ордеров
В КА связь может быть организована по-разному:
— через заказ клиента;
— через документ реализации товаров и услуг;
— через распоряжение на отгрузку;
— через табличную часть расходного ордера «Товары по распоряжениям»;
— через документ основания;
— через складскую схему с ордерами.Часто надежнее искать расходные ордера не напрямую по реализации, а по заказу клиента:
1С (Код)123Если ТипЗнч(Распоряжение) = Тип("ДокументСсылка.ЗаказКлиента") Тогда// Расходный ордер связан с заказом клиентаКонецЕсли;После этого выбираются расходные ордера, в табличной части которых есть соответствующий заказ клиента.
## Пример поиска через запрос
Ниже приведен общий вариант. Названия полей необходимо проверить в конфигураторе, поскольку они могут отличаться в зависимости от релиза КА 2.5.
1С (Код)12345678910111213141516171819Запрос = Новый Запрос;Запрос.Текст =|ВЫБРАТЬ РАЗРЕШЕННЫЕ| РасходныеОрдера.Ссылка|ИЗ| Документ.РасходныйОрдерНаТовары КАК РасходныеОрдера| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходныйОрдерНаТовары.ТоварыПоРаспоряжениям КАК ТоварыПоРаспоряжениям| ПО ТоварыПоРаспоряжениям.Ссылка = РасходныеОрдера.Ссылка|ГДЕ| РасходныеОрдера.Проведен| И ТоварыПоРаспоряжениям.Распоряжение = &Распоряжение| И РасходныеОрдера.Статус <> &СтатусОтгружен|;Запрос.УстановитьПараметр("Распоряжение", Распоряжение);Запрос.УстановитьПараметр(| "СтатусОтгружен",| Перечисления.СтатусыРасходныхОрдеров.Отгружен);Результат = Запрос.Выполнить();В конкретной базе могут использоваться другие имена:
—
РасходныйОрдерНаТовары;
—РасходныйОрдерНаТовары.ТоварыПоРаспоряжениям;
—РаспоряжениеНаОтгрузку;
—ДокументОснование;
—ЗаказКлиента.Это нужно проверить в конфигураторе по объекту документа и его табличным частям.
## Где размещать доработку
Оптимальный вариант:
1. Создать расширение конфигурации.
2. Добавить подписку на событие записи документа «Реализация товаров и услуг» либо расширить его серверную логику.
3. Выполнять обработку только при проведении.
4. После успешной записи реализации устанавливать статус связанных расходных ордеров.Если используется управляемое приложение, обработку нужно выполнять на сервере. Обработчик формы подходит только как временное решение.
## Что нужно учесть
Автоматически устанавливать статус «Отгружен» можно только если:
— реализация действительно означает физическую отгрузку;
— все товары по расходному ордеру отгружены;
— количество в реализации не меньше количества в ордере;
— не используется частичная отгрузка;
— не требуется подтверждение кладовщика;
— реализация не является предварительным документом или корректировкой.При частичной отгрузке устанавливать статус «Отгружен» по одному факту проведения реализации неправильно. В таком случае расходный ордер должен оставаться в промежуточном статусе, а строки заказа или ордера нужно корректировать отдельно.
Также следует учитывать, что при записи расходного ордера с проведением могут выполняться проверки остатков, доступности товаров и складских распоряжений. Поэтому простое присваивание статуса без проверки может привести к ошибкам или нарушению складской логики.
Для типовой КА правильнее использовать схему:
Расходный ордер переведен в статус «Отгружен» → затем проводится реализация.
Если же требуется обратная схема, то это уже отдельная доработка через расширение, причем необходимо точно определить связь между реализацией и расходным ордером в конкретном релизе КА.
-
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.