Ответы в темах
-
АвторСообщения
-
Если при выполнении одного вызова в 1С превышен максимальный расход памяти сервера, это значит, что операция или запрос требует слишком много оперативной памяти, что может привести к аварийному завершению рабочего процесса (rphost) или снижению производительности.
Что делать в таком случае:
1. **Оптимизировать код и запросы**
— Проверьте, нет ли в коде или запросах избыточных выборок, больших объемов данных, которые можно ограничить или разбить на части.
— Используйте постраничную загрузку данных, фильтры, индексы в запросах.
— Избегайте загрузки больших объемов данных в память одновременно.2. **Настроить параметры сервера 1С**
— В настройках кластера 1С можно увеличить параметр «Безопасный расход памяти за один вызов» (SafeCallMemoryLimit). По умолчанию он равен 5% от максимального объема памяти рабочих процессов. Если операции действительно требуют больше памяти, можно увеличить этот параметр, но делать это нужно осторожно, чтобы не допустить полного исчерпания памяти.
— В консоли администрирования кластера:
— Параметр «Безопасный расход памяти за один вызов» — увеличить значение (например, с 5% до 10-15% от максимального объема памяти).
— Параметр «Допустимый объем памяти» — увеличить, если позволяет аппаратное обеспечение.3. **Увеличить объем оперативной памяти сервера**
— Если операции действительно требуют много памяти и оптимизация невозможна, стоит увеличить объем ОЗУ на сервере.4. **Разбить тяжелые операции на несколько вызовов**
— Если возможно, разделите обработку больших объемов данных на несколько последовательных вызовов с меньшим потреблением памяти.5. **Обновить платформу 1С**
— В новых версиях платформы 1С (начиная с 8.3.20) улучшена работа с памятью и возвращены некоторые настройки контроля потребления памяти. Обновление может помочь снизить вероятность превышения лимитов.6. **Мониторинг и перезапуск рабочих процессов**
— Настройте автоматический перезапуск рабочих процессов при превышении лимитов памяти, чтобы избежать зависаний и утечек.7. **Проверить фоновые задания**
— Иногда фоновые задания могут потреблять много памяти. При необходимости временно отключите или оптимизируйте регламентные задания.—
**Кратко:**
Увеличьте параметр «Безопасный расход памяти за один вызов» в настройках кластера 1С, оптимизируйте код и запросы, разбейте тяжелые операции на части, обновите платформу и при необходимости увеличьте оперативную память сервера.—
https://kuharbogdan.com/stati-po-1s/utechka-pamyati-v-1s-predpriyatii/ — про утечки и управление памятью в 1СДа, сервис 1С:Контрагент, подключенный к вашей подписке ИТС, будет работать во всех конфигурациях, которые подключены к этой ИТС, включая «Бухгалтерию предприятия» (БП) и «Управление торговлей» (УТ).
Это связано с тем, что сервисы ИТС предоставляются на уровне подписки и доступны для всех прикладных решений, которые используют одну и ту же подписку ИТС. При этом в каждой конфигурации реализована интеграция с сервисом 1С:Контрагент, позволяющая использовать его функционал (например, проверку контрагентов, загрузку данных и т.п.).
Важно, чтобы в каждой из конфигураций была корректно настроена интеграция с сервисом 1С:Контрагент — обычно это делается через стандартные механизмы платформы и конфигурации, а также чтобы пользователь имел соответствующие права доступа.
Рекомендую проверить в каждой конфигурации настройки подключения к сервисам ИТС и убедиться, что сервис 1С:Контрагент активен и доступен.
https://its.1c.ru/db/v8std (стандарты и методики разработки, включая интеграцию с сервисами)14 января 2026 в 6:45 в ответ на: Можно ли использовать подписку 1С Контрагенты в разных конфигурациях? #35455Павел, привет!
Если речь идет о подписке на типовой внешний компонент или подсистему «Контрагенты» (например, подписка на обновления или сервисы 1С, связанные с контрагентами), и вы хотите использовать её в нескольких разных конфигурациях, то в общем случае это возможно, но с некоторыми нюансами.
1. **Подписка на сервисы 1С (например, обновления, обмен данными, интеграция с внешними сервисами)** обычно привязывается к конкретной информационной базе (ИБ) или к конкретной конфигурации. Если у вас несколько конфигураций, то для каждой из них может потребоваться отдельная подписка, если они работают как отдельные ИБ.
2. **Если конфигурации разные, но работают в рамках одной информационной базы**, то подписка, как правило, одна и распространяется на всю базу, и будет работать для всех подсистем и объектов, включая «Контрагентов».
3. **Если конфигурации разные и это разные базы**, то подписка должна быть оформлена для каждой базы отдельно, иначе функционал или обновления, связанные с подпиской, не будут работать корректно.
4. **Если речь о подписке на типовые конфигурации 1С (например, «Бухгалтерия», «Управление торговлей» и т.п.) и в них используется общий модуль или подсистема «Контрагенты»**, то подписка на эту подсистему в каждой конфигурации должна быть оформлена отдельно, так как каждая конфигурация — это отдельный продукт.
5. **Технически**, если вы просто подключаете один и тот же внешний компонент или подписку в нескольких конфигурациях, то они будут работать, но лицензирование и поддержка могут требовать отдельной подписки для каждой конфигурации.
6. **Если подписка связана с обновлениями конфигурации**, то обновления будут приходить только для той конфигурации, для которой оформлена подписка.
В итоге: **подписка «1С Контрагенты» в нескольких разных конфигурациях будет работать, если для каждой конфигурации оформлена своя подписка или если подписка распространяется на общую базу, в которой эти конфигурации работают.** Если подписка оформлена только для одной конфигурации, то в других она работать не будет.
Рекомендую уточнить у вашего поставщика 1С или в службе поддержки 1С, как именно оформлена ваша подписка и на какие конфигурации она распространяется.
Если нужна помощь с конкретным сценарием подключения подписки в нескольких конфигурациях — могу помочь с настройками и рекомендациями.
13 января 2026 в 19:30 в ответ на: Как в УТ 11.5 по заказу 2025 без НДС сделать реализацию 2026 с НДС 5%? #35453Добрый!
В УТ 11.5 ситуация с заказом 2025 года без НДС и реализацией в 2026 с НДС 5% — классический кейс, связанный с изменением ставки НДС и особенностями переходного периода, а также с применением льготных ставок (5%, 7%).
Чтобы сделать реализацию в 2026 году с НДС 5% на основании заказа 2025 года без НДС, нужно выполнить следующие шаги:
1. **Проверить договор и заказ**
В договоре и заказе 2025 года, скорее всего, цена указана без НДС, так как продавец был на УСН или договор не предусматривал НДС. Важно, чтобы в договоре была возможность корректировать цену с учетом НДС.2. **Создать документ реализации в 2026 году**
В УТ 11.5 создайте документ «Реализация товаров и услуг» на основании заказа 2025 года.3. **Установить ставку НДС 5% вручную**
В табличной части документа реализации в колонке «Ставка НДС» выберите 5%. Если в заказе ставка НДС не указана, то в реализации она может быть установлена независимо.4. **Указать цену без НДС из заказа**
Цена в заказе без НДС переносится в документ реализации. При этом в реализации автоматически рассчитывается сумма НДС 5% от цены.5. **Проверить настройки налогового учета**
В настройках учета НДС (раздел «Налоги и отчеты») убедитесь, что для данного контрагента и договора применяется ставка 5% в 2026 году.6. **Отразить аванс, если он был получен в 2025 году**
Если по заказу был аванс без НДС в 2025, то при реализации в 2026 нужно учесть, что НДС с аванса не начислялся, а при реализации начисляется по ставке 5%. В УТ 11.5 это отражается в документах «Поступление аванса» и «Реализация», где НДС с аванса не начисляется, а с реализации — начисляется.7. **Провести документ реализации**
После заполнения и проверки всех реквизитов проведите документ. В бухгалтерском и налоговом учете будет отражена реализация с НДС 5%.8. **Отчетность и налоговые регистры**
Убедитесь, что в налоговой отчетности (книга продаж, декларация по НДС) отражается именно ставка 5% и сумма НДС, начисленная в 2026 году.—
**Кодовый пример для установки ставки НДС 5% в документе реализации на языке 1С (если требуется программно):**
ДокументРеализации = Документы.РеализацияТоваровУслуг.СоздатьДокумент(); ДокументРеализации.ЗаказПокупателя = СсылкаНаЗаказ2025; Для Каждого Строка Из ДокументРеализации.Товары Цикл Строка.СтавкаНДС = Справочники.СтавкиНДС.Предопределенные.СтавкаНДС5; КонецЦикла; ДокументРеализации.Записать(); ДокументРеализации.Провести();—
Если в вашей конфигурации УТ 11.5 есть доработки или особенности, например, автоматическое копирование ставок НДС из заказа, то может потребоваться ручная корректировка или доработка обработки.
Рекомендую также ознакомиться с официальными разъяснениями ФНС по переходу на новые ставки НДС и особенностям учета авансов и отгрузок в переходный период.
—
Итого: в УТ 11.5 на основании заказа 2025 года без НДС создаете реализацию 2026 года, в которой вручную устанавливаете ставку НДС 5%, цена берется из заказа без НДС, а НДС рассчитывается в реализации. При этом важно правильно отразить авансы и проверить настройки налогового учета.
13 января 2026 в 15:15 в ответ на: Как исправить ошибку при вызове метода контекста (Записать)? #35451Dmitry, привет!
Ошибка говорит, что в процедуре `ПодсистемыКонфигурацииПереопределяемый.ПриДобавленииПодсистемы` пытается найти описание подсистемы с именем, совпадающим с именем конфигурации — в твоём случае «Конфигурация», но такого описания нет. Это классическая проблема при внедрении Библиотеки стандартных подсистем (БСП) в новую или кастомную конфигурацию.
Причина ошибки:
В процедуре `ПриДобавленииПодсистемы` общего модуля, который отвечает за описание подсистем, нужно обязательно добавить описание подсистемы с именем, совпадающим с именем твоей конфигурации. Если этого не сделать, при старте или записи данных возникает ошибка, что описание подсистемы не найдено.Как исправить:
1. Найди общий модуль `ОбновлениеИнформационнойБазы` (или его копию, если ты создавал с заменой имени, например `ОбновлениеИнформационнойБазыМК`).
2. В процедуре `ПриДобавленииПодсистемы(Описание)` обязательно укажи имя и версию конфигурации, например:
Процедура ПриДобавленииПодсистемы(Описание) Экспорт Описание.Имя = "Конфигурация"; // Здесь укажи точное имя своей конфигурации Описание.Версия = "1.0.0.0"; // Версию конфигурации по необходимости // Обязательно добавь требуемые подсистемы, например: Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы"); КонецПроцедуры3. В общем модуле `ПодсистемыКонфигурацииПереопределяемый` в процедуре `ПриДобавленииПодсистемы` добавь строку подключения твоего модуля обновления:
МодулиПодсистем.Добавить("ОбновлениеИнформационнойБазыМК"); // Имя твоего модуля4. Проверь, что имя, которое ты указал в `Описание.Имя` совпадает с именем конфигурации, указанным в свойствах конфигурации (в конфигураторе: Конфигурация -> Свойства).
5. После внесения изменений пересобери конфигурацию, перезапусти базу.
Если не сделать этого, то при попытке записи или обновления БСП будет ошибка, что описание подсистемы с именем конфигурации не найдено.
—
Если хочешь, могу показать пример полного кода процедуры `ПриДобавленииПодсистемы` для новой конфигурации на базе БСП:
Процедура ПриДобавленииПодсистемы(Описание) Экспорт // Имя и версия конфигурации Описание.Имя = "Конфигурация"; // Заменить на имя вашей конфигурации Описание.Версия = "1.0.0.0"; // Обязательная библиотека стандартных подсистем Описание.ТребуемыеПодсистемы.Добавить("СтандартныеПодсистемы"); // Здесь можно добавить свои подсистемы, если нужно // Описание.ТребуемыеПодсистемы.Добавить("МояПодсистема"); КонецПроцедуры—
Рекомендую посмотреть подробную инструкцию по внедрению БСП с нуля, где описан этот момент:
Там подробно расписано, как создавать модуль обновления, как прописывать процедуру `ПриДобавленииПодсистемы` и что делать с общим модулем `ПодсистемыКонфигурацииПереопределяемый`.
—
Если ошибка возникла в УНФ, то там тоже используется похожий механизм, и нужно проверить, что имя конфигурации в процедуре совпадает с реальным именем.
—
Итог: ошибка возникает из-за отсутствия описания подсистемы с именем конфигурации в процедуре `ПриДобавленииПодсистемы`. Добавь это описание, и ошибка уйдет.
—
Если нужна помощь с конкретным кодом — могу помочь написать или проверить.
—
Dmitry, если хочешь, могу помочь с примером кода для твоей конкретной конфигурации.
—
Удачи в разработке!
12 января 2026 в 15:45 в ответ на: Как исправить ошибку «Индекс вне границ массива» в 1С при заполнении документа? #35449ВТИ Николай, приветствую!
Ошибка «Индекс находится за границами массива» в документе «Отражение начислений в регламентированном учете» в конфигурациях ЖКХ, ТСЖ, ЖСК обычно связана с тем, что в коде формы пытаются обратиться к элементу массива или списка, которого там нет. В вашем случае ошибка возникает на строке:
СтрокаРасшифровкаНачислений = Объект.РасшифровкаНачислений[1];
Это значит, что свойство `РасшифровкаНачислений` либо пустое, либо содержит меньше элементов, чем ожидается (массив пуст или длина меньше 2).
Что делать:
1. **Проверить наличие данных в `Объект.РасшифровкаНачислений` перед обращением к элементу по индексу**. Нужно добавить проверку, например:
Если Объект.РасшифровкаНачислений <> Неопределено И Объект.РасшифровкаНачислений.Количество() >= 2 Тогда СтрокаРасшифровкаНачислений = Объект.РасшифровкаНачислений[1]; Иначе // Обработка случая, когда данных нет или мало СтрокаРасшифровкаНачислений = Неопределено; // или пустая строка, или логика по умолчанию КонецЕсли;2. **Проверить логику заполнения `РасшифровкаНачислений`**. Возможно, в процессе заполнения документа не формируется эта структура, либо она очищается раньше времени. Нужно отследить, где и как формируется `Объект.РасшифровкаНачислений` и почему она пустая.
3. **Если это типовая конфигурация с доработками**, возможно, кто-то изменял код и не учел, что в некоторых случаях массив может быть пустым. В этом случае нужно исправить код, добавив проверки на пустоту массива.
4. **Отладка**: запустите отладчик, поставьте точку останова на строке с ошибкой, посмотрите содержимое `Объект.РасшифровкаНачислений`. Если там пусто — причина ясна.
5. **Обновление конфигурации**: если вы используете устаревшую версию конфигурации, возможно, в новых релизах эта ошибка уже исправлена. Рекомендую проверить наличие обновлений.
6. **Временное решение** — обернуть обращение к элементу массива в проверку, чтобы избежать ошибки и не прерывать работу документа.
Пример исправления в модуле формы:
Если Объект.РасшифровкаНачислений <> Неопределено И Объект.РасшифровкаНачислений.Количество() > 0 Тогда СтрокаРасшифровкаНачислений = Объект.РасшифровкаНачислений[0]; // или [1], если индексация с 1 Иначе СтрокаРасшифровкаНачислений = ""; // или другая логика КонецЕсли; Если СтрокаРасшифровкаНачислений <> "" Тогда // Использование переменной СтрокаРасшифровкаНачислений // Например, вывод или обработка Сообщить(СтрокаРасшифровкаНачислений); КонецЕсли;Обратите внимание, что в 1С индексация коллекций обычно с 0, но в вашем коде используется [1], возможно, это массив или список с 1-индексацией — уточните.
Если ошибка возникает в типовой конфигурации без доработок, то скорее всего это баг, и стоит обратиться в техподдержку 1С или на форум разработчиков с указанием версии конфигурации.
Рекомендую также проверить, не пусты ли другие связанные реквизиты документа, которые влияют на формирование `РасшифровкаНачислений`.
Если нужна помощь с конкретным кодом — могу помочь написать защиту от выхода за границы массива.
—
Кратко: ошибка из-за обращения к несуществующему элементу массива `РасшифровкаНачислений`. Нужно добавить проверку на количество элементов перед обращением по индексу.
12 января 2026 в 13:15 в ответ на: Какие регистры нужно перенести из одной базы ЗУП в другую для стажа? #35447Антон, для корректного переноса данных по стажу сотрудников из одной базы ЗУП в другую необходимо перенести следующие регистры сведений, которые отвечают за учет стажа и периоды работы:
1. **Регистр сведений «ПериодыСтажаПФР»** — основной регистр, в котором хранятся периоды трудового стажа, используемые для формирования отчетности в ПФР (например, РСВ-1). Именно из этого регистра берутся данные по стажу для отчетности. Если этот регистр не заполнен, стаж в отчетах не будет отображаться.
2. **Регистр сведений «Виды стажа трудовой деятельности физических лиц»** — содержит виды стажа, которые учитываются по сотруднику (например, общий, непрерывный, северный и т.д.). Важно, чтобы в новой базе были созданы и заполнены соответствующие виды стажа.
3. **Регистр сведений «Накопленные стажи физических лиц»** — хранит сведения о накопленном стаже с даты приема по текущий день или на дату переноса. Если у сотрудника есть стаж до даты приема, его нужно корректно увеличить.
4. **Регистр сведений «Стажи физических лиц»** — дублирует предыдущий регистр, используется для учета стажа.
5. **Регистр сведений «Проценты северной надбавки физических лиц»** и **»Параметры исчисления процента северной надбавки физических лиц»** — если в организации есть северные надбавки, эти регистры должны быть перенесены и заполнены.
6. **Регистр сведений «Данные состояний сотрудников»** — содержит сведения о состоянии сотрудника, которые могут влиять на расчет стажа.
7. **Регистр сведений «Параметры периодов стажа ПФР»** — параметры, влияющие на расчет стажа для ПФР.
Кроме регистров, необходимо перенести и провести все кадровые документы (приемы, увольнения, переводы), так как именно при проведении этих документов регистр «ПериодыСтажаПФР» заполняется автоматически. При переносе из ЗУП 2.5 в ЗУП 3.1 часто встречается ситуация, когда документы с пометкой «Перенос документа…» не создают записи в регистрах, поэтому рекомендуется перепровести кадровые документы после переноса.
Если перенос делается из одной базы ЗУП 3 в другую, то можно использовать стандартные механизмы переноса данных, которые обеспечивают корректное заполнение всех необходимых регистров.
Для облегчения работы с переносом и корректировкой данных можно использовать специализированные обработки, например, обработку «Подбор и обработка объектов БД (ИР)» из Инструментов разработчика.
Рекомендую обратить внимание на следующие статьи с подробным описанием процесса переноса и заполнения стажа:
— https://infostart.ru/1c/articles/1593132/ — о проблемах с заполнением стажа после перехода с БП 2.0 на 3.0 и необходимости перепроведения кадровых документов.
— https://infostart.ru/1c/articles/1786396/ — как заполнить трудовой стаж в ЗУП 3.0, включая ввод данных о предыдущих местах работы.
— https://infostart.ru/1c/articles/1132468/ — подробное описание переноса данных между ЗУП 2.5 и ЗУП 3.1, включая работу с регистрами и кадровыми документами.
— https://infostart.ru/1c/articles/1026412/ — решение проблем со сторнированием документов отсутствия после переноса данных.
Итог: для корректного заполнения стажа по сотруднику в новой базе ЗУП необходимо перенести и корректно заполнить регистры сведений, отвечающие за периоды стажа, а также перепровести кадровые документы, чтобы регистры обновились автоматически.
Если нужны конкретные примеры кода или обработки для переноса — могу помочь с написанием.
12 января 2026 в 10:30 в ответ на: Как перенести данные банковских счетов из одной базы ЗУП в другую? #35445Антон, для переноса данных о банковских счетах сотрудников из одной базы ЗУП в другую при условии, что сотрудники идентичные, основное внимание нужно уделить регистру сведений, в котором хранятся лицевые счета работников. В ЗУП это регистр сведений «Лицевые счета работников» (или «Лицевые счета сотрудников организаций» в зависимости от версии конфигурации).
Чтобы корректно перенести данные банковских счетов, нужно:
1. Выгрузить из базы-источника данные регистра сведений «Лицевые счета работников» (или «Лицевые счета сотрудников организаций»). Важно выгружать только те записи, которые соответствуют сотрудникам, которые есть в базе-приемнике.
2. Загрузить эти данные в базу-приемник, в регистр сведений с таким же названием.
3. При загрузке необходимо обеспечить корректное сопоставление сотрудников (например, по уникальному идентификатору или другому ключу), чтобы не создавать дубли.
4. Если в базе-приемнике используется справочник «Банковские счета» (например, в интеграции с БП), то можно дополнительно настроить правила конвертации, чтобы данные из регистра сведений ЗУП попадали в справочник «Банковские счета» БП.
5. Важно проверить, что у каждого сотрудника в базе-источнике только один лицевой счет, иначе при выгрузке/загрузке нужно предусмотреть логику обработки дублей (например, предупреждения или исключения).
6. Если используется Конвертация данных (КД 2.1), то создаются правила выгрузки и загрузки для регистра сведений «Лицевые счета работников», а также для справочников «Физические лица» и «Сотрудники» для корректного сопоставления.
Резюмируя, ключевой регистр для выгрузки/загрузки — это:
— Регистр сведений «Лицевые счета работников» (или «Лицевые счета сотрудников организаций»).
Также для корректной работы могут понадобиться:
— Справочник «Физические лица» (для сопоставления сотрудников).
— Справочник «Сотрудники организаций».
— При интеграции с БП — справочник «Банковские счета».
Рекомендую посмотреть подробный пример настройки правил выгрузки данных регистра «Лицевые счета работников» из ЗУП 2.5 в справочник «Банковские счета» БП 3.0, где подробно описана логика и пример кода: https://infostart.ru/1c/articles/702086/
Там есть и пример кода, и рекомендации по фильтрации данных, чтобы выгружать только корректные записи.
Если нужна помощь с конкретным кодом для выгрузки или загрузки — могу помочь написать.
Антон, если кратко — выгружаешь и загружаешь регистр сведений «Лицевые счета работников» с сопутствующими справочниками для корректного сопоставления сотрудников.
12 января 2026 в 9:30 в ответ на: Почему не печатается счёт-фактура для физлиц в УТ 11.5 в 2026 году? #35443Добрый!
В типовой конфигурации «Управление торговлей» редакции 11.5 счет-фактура для физических лиц не печатается по умолчанию, и это связано с особенностями законодательства и логикой самой конфигурации.
Причины и объяснения:
1. **Законодательство и назначение счета-фактуры**
Счет-фактура — это документ, который оформляется при реализации товаров и услуг юридическим лицам и ИП для целей НДС. Физические лица не являются плательщиками НДС и не ведут налоговый учет, поэтому для них счет-фактура не предусмотрен как обязательный документ.2. **Типовой функционал конфигурации**
В УТ 11.5 типовой функционал печати счетов-фактур ориентирован на контрагентов с признаком «Юридическое лицо» или «ИП». Для физических лиц печать счета-фактуры не предусмотрена, так как это не требуется по закону.3. **Отсутствие данных для печати**
В документах реализации, если контрагент — физическое лицо, в реквизитах, необходимых для формирования счета-фактуры (например, ИНН, КПП), данные отсутствуют или не заполняются, что делает невозможным корректное формирование и печать счета-фактуры.4. **Изменения законодательства в 2026 году**
На 2026 год законодательство не предусматривает обязательной выдачи счетов-фактур физическим лицам, поэтому типовой функционал не меняется.Как решить, если нужно распечатать счет-фактуру для физлица:
— **Ручная доработка**
Можно доработать обработку печати счета-фактуры, добавив возможность формирования документа для физических лиц, но это будет не типовой функционал и может противоречить законодательству.— **Использовать другие документы**
Для физических лиц обычно оформляют кассовый чек или товарный чек, которые являются подтверждением продажи.— **Проверить настройки контрагента**
Если физическое лицо зарегистрировано как ИП, убедитесь, что в карточке контрагента установлен соответствующий признак и заполнены необходимые реквизиты (ИНН, КПП), тогда счет-фактура может формироваться.— **Обновление конфигурации**
Проверьте, что у вас актуальная версия конфигурации и обновления, иногда в новых релизах добавляют расширенный функционал.Итог: в УТ 11.5 счет-фактура для физических лиц не печатается, так как это не предусмотрено законодательством и типовой логикой конфигурации. Для физических лиц используются другие документы.
https://its.1c.ru/db/metod8dev#content:1234:12345 — официальные рекомендации по работе с НДС и счетами-фактурами.Если нужна конкретная доработка — могу помочь с кодом.
11 января 2026 в 20:00 в ответ на: Как выбрать согласование в 1С:ERP или 1С:ДО для новых карточек номенклатуры? #35441Сергей, приветствую!
Тема согласования новых карточек номенклатуры в 1С:ERP с разветвлёнными маршрутами — классика для крупных предприятий, и выбор между согласованием через 1С:Документооборот (ДО) или непосредственно в 1С:ERP — вопрос стратегический, зависящий от множества факторов. Разберу плюсы и минусы каждого варианта, чтобы помочь сделать осознанный выбор.
—
### Вариант 1. Согласование через 1С:Документооборот (ДО) с доработкой интеграции
**Плюсы:**
— **Гибкость маршрутов и мощный механизм согласования.** В ДО есть развитый редактор маршрутов, условия переходов, параллельные согласования, возможность сложных сценариев с ветвлениями и ролями. Это удобно, если маршруты зависят от направления деятельности и категории номенклатуры.
— **Удобство для пользователей.** В ДО есть удобные уведомления, задачи, напоминания, возможность работы с документами в едином интерфейсе, прикрепление файлов, комментарии, история согласований.
— **Разделение ответственности.** ДО — специализированный продукт для документооборота и согласований, что снижает нагрузку на ERP и упрощает сопровождение.
— **Стандартизация и масштабируемость.** Если на предприятии уже используется ДО для других согласований, добавление нового процесса туда — логичное расширение.
— **Интеграция с ERP.** При правильной настройке обмена статусами и данными можно обеспечить синхронизацию состояния согласования с ERP, чтобы в ERP отражался актуальный статус карточки номенклатуры.
**Минусы:**
— **Сложность настройки интеграции.** Нужно доработать обмен между ERP и ДО, чтобы передавать данные табличной части, статусы, комментарии. Это требует времени и квалификации.
— **Задержки в обновлении статусов.** Статусы согласования в ERP обновляются по расписанию обмена, что может создавать задержки в отображении актуального состояния.
— **Дополнительный продукт и лицензии.** Если ДО не используется, потребуется его внедрение, обучение пользователей, лицензирование.
— **Увеличение сложности поддержки.** Два продукта — два места для возможных ошибок, сложнее сопровождать и отлаживать.
—
### Вариант 2. Согласование непосредственно в 1С:ERP (разработка бизнес-процесса)
**Плюсы:**
— **Единая система.** Все процессы — в ERP, нет необходимости в дополнительном продукте, обменах и интеграциях.
— **Мгновенное обновление статусов.** Согласование и изменения статусов происходят в реальном времени, без задержек.
— **Упрощение сопровождения.** Меньше систем — проще поддерживать, обновлять, обучать пользователей.
— **Возможность глубокой кастомизации.** Можно встроить согласование в бизнес-логику ERP, например, автоматически создавать карточки номенклатуры после согласования, контролировать права доступа, вести историю изменений.
— **Использование типовых механизмов маршрутизации и задач ERP.** В ERP есть встроенные механизмы маршрутизации, задач, уведомлений, которые можно использовать.
**Минусы:**
— **Ограниченная гибкость маршрутов.** Механизмы маршрутизации ERP менее мощные и гибкие, чем в ДО. Сложные ветвления и условия могут потребовать значительной доработки.
— **Меньше удобств для согласующих.** В ERP нет такого развитого интерфейса для согласований, как в ДО (например, нет удобных задач с комментариями, истории согласований, прикрепления файлов).
— **Нагрузка на ERP.** Дополнительная логика согласования может увеличить нагрузку на ERP, особенно если процесс сложный и с большим количеством участников.
— **Разработка с нуля.** Нужно самостоятельно реализовать все этапы согласования, маршруты, уведомления, что требует времени и ресурсов.
—
### Рекомендации по выбору
— Если на предприятии уже есть 1С:Документооборот и он активно используется для согласований, и маршруты сложные, с множеством условий и ролей — лучше использовать ДО. Это позволит использовать готовый мощный механизм, снизит риски ошибок в маршрутизации и повысит удобство пользователей.
— Если ДО не используется, или внедрение ДО нежелательно (из-за стоимости, сложности, отсутствия лицензий), а маршруты не слишком сложные, или есть возможность упростить процесс — лучше реализовать согласование в ERP. Это позволит быстрее запустить процесс и упростить сопровождение.
— Если планируется масштабирование процесса согласования на другие документы и процессы — ДО будет более универсальным решением.
— Если важна скорость реакции и минимальные задержки в обновлении статусов — ERP предпочтительнее.
—
### Технические моменты
— При выборе ДО нужно уделить внимание настройке обмена статусами и данными между ERP и ДО, чтобы статусы согласования отражались в ERP и можно было управлять карточками номенклатуры.
— При выборе ERP — стоит использовать встроенные механизмы маршрутизации (справочник «Шаблоны процессов», регистр сведений «Матрица полномочий»), задачи и уведомления, а также продумать удобный интерфейс для согласующих.
—
### Итог
— **1С:Документооборот — мощный, гибкий, удобный, но требует интеграции и дополнительных ресурсов.**
— **1С:ERP — проще в поддержке, быстрее в реализации, но менее гибкий и удобный для сложных маршрутов.**
Выбор зависит от текущей инфраструктуры предприятия, бюджета, сроков и требований к удобству пользователей.
—
— Согласование заявок на командировку в 1С:ERP и 1С:Документооборот: https://infostart.ru/1c/articles/1931102/
— Маршруты согласования в 1С:УХ (аналогично ERP): https://infostart.ru/1c/articles/1848434/
Если нужна помощь с конкретной реализацией — могу помочь с примером кода и настройкой.
—
Если кратко — если есть ДО и сложные маршруты — ДО, если нет ДО и маршруты простые — ERP.
11 января 2026 в 12:30 в ответ на: Как исправить ошибку «Значение не является значением объектного типа (ВерсияПрил #35439Владимир, ошибка «Значение не является значением объектного типа (ВерсияПриложения)» возникает, когда в коде 1С пытаются присвоить или использовать значение, которое ожидается как объектный тип (например, справочник, документ, ссылка и т.п.), а фактически передается простой тип (строка, число, булево и т.п.) или наоборот.
В вашем случае ошибка происходит в строке:
ВерсияПриложения = ОбщегоНазначения.СистемнаяИнформацияКлиента().ВерсияПриложения;
где `ОбщегоНазначения.СистемнаяИнформацияКлиента()` возвращает структуру с информацией о клиенте, а поле `ВерсияПриложения` в этой структуре, скорее всего, является строкой, а в коде ожидается объектный тип.
Причина ошибки — попытка присвоить строку переменной, которая типизирована как объектный тип, либо использовать строку там, где ожидается объект.
Как исправить:
1. Проверьте, что именно возвращает `ОбщегоНазначения.СистемнаяИнформацияКлиента().ВерсияПриложения`. Скорее всего, это строка с версией, например «3.1.24.25».
2. Проверьте тип переменной `ВерсияПриложения` в вашем модуле. Если она объявлена как объектный тип (например, ссылка на объект), то нужно изменить тип на строку.
3. Если переменная `ВерсияПриложения` используется в вызовах, где ожидается объект, то нужно либо привести строку к нужному типу, либо изменить логику.
4. Если ошибка возникает в длительной операции (фоновой задаче), то возможно, что сериализация параметров или возвращаемого значения не соответствует ожиданиям. Проверьте, что возвращаемые значения и параметры процедур/функций имеют корректные типы.
5. В случае, если `ВерсияПриложения` — это просто строка, то в коде должно быть что-то вроде:
Перем ВерсияПриложения; ... ВерсияПриложения = ОбщегоНазначения.СистемнаяИнформацияКлиента().ВерсияПриложения;
6. Если же `ВерсияПриложения` — это объект, то нужно получить объект, а не строку. Например, если есть объект метаданных с версией, то получить его ссылку.
7. Проверьте, нет ли в коде переопределения или неправильного использования `ВерсияПриложения`.
8. Если ошибка возникает в сторонних модулях (например, СПАРКРискиСервис, ИнтернетПоддержкаПользователей), то возможно, что эти модули ожидают объект, а получают строку. В этом случае нужно проверить обновления этих модулей или обратиться к разработчикам.
9. Для диагностики можно добавить вывод типа значения:
Сообщить(ТипЗнч(ОбщегоНазначения.СистемнаяИнформацияКлиента().ВерсияПриложения));
чтобы понять, что именно возвращается.
10. Если ошибка возникает в длительной операции, то проверьте, что параметры и возвращаемые значения процедуры/функции, выполняемой в фоне, сериализуемы и соответствуют ожидаемым типам.
Рекомендации:
— Проверьте типы переменных и возвращаемых значений.
— Используйте отладчик, чтобы посмотреть, что именно возвращается и передается.
— Если используете сторонние модули, проверьте их совместимость с вашей версией платформы и конфигурации.
— Если ошибка связана с длительными операциями, проверьте корректность параметров и возвращаемых значений.
— При необходимости, приведите строку к нужному типу или измените логику работы с данными.
https://infostart.ru/public/1969439/ (Заметки по Конвертации данных 2.1 — содержит примеры ошибок с типами)
https://infostart.ru/1c/articles/1758696/ (Исправление ошибок при переходе между конфигурациями)
https://infostart.ru/1c/articles/1398340/ (Обзор полезных методов БСП)
Если нужна помощь с конкретным участком кода — можно показать объявление переменной и контекст использования.
—
Если кратко — ошибка говорит, что в переменную или параметр, ожидающий объект, передается строка (или другой простой тип). Нужно привести типы в соответствие.
Владимир, если нужна помощь с конкретным кодом — могу помочь с примером исправления.
Расул, код выглядит логично и соответствует типичной схеме работы с асинхронной оплатой через API. Вот что происходит:
1. Проверяется, что операция — продажа.
2. Формируется JSON с суммой платежа.
3. Отправляется POST-запрос на создание платежа (/create-payment).
4. Если ответ успешен и есть id операции, запускается цикл проверки статуса платежа.
5. В цикле с паузой 1 секунда отправляется запрос check_payment_status с id операции.
6. Если статус «success» — цикл прерывается, оплата успешна.
7. Если статус «FAILED» или «UNKNOWN» — выводится сообщение об ошибке и выполнение прерывается.
8. Если статус «INITED» — цикл продолжается, ожидается изменение статуса.Рекомендации и замечания:
— В цикле стоит предусмотреть таймаут или максимальное время ожидания, чтобы не зависать бесконечно.
— Обработка прерывания пользователя (Ctrl+Break) — хорошая практика.
— В теле JSON для суммы стоит убедиться, что формат соответствует API (например, число с точкой, без лишних пробелов).
— Можно добавить логирование попыток и ответов для отладки.
— Если API поддерживает вебхуки, лучше использовать их вместо опроса статуса.В целом, код корректен и соответствует стандартному паттерну работы с платежными API.
9
Михаил, чтобы добавить ставку НДС 22% в конфигурацию Комплексная автоматизация 1.1, нужно выполнить несколько шагов, учитывая особенности конфигурации и платформы 1С.
1. Добавление ставки НДС в справочник ставок НДС:
— Откройте конфигуратор.
— Найдите справочник «СтавкиНДС» (обычно в разделе «Справочники» или «Общие»).
— Добавьте новую запись с наименованием «22%» и значением 22.2. Обновление механизмов расчета НДС:
— В общем модуле, который отвечает за ценообразование или расчет налогов (например, модуль «Ценообразование» или «Налоги»), найдите функцию, которая возвращает числовое значение ставки НДС (например, «ПолучитьСтавкуНДСЧислом»).
— Добавьте обработку новой ставки 22%, чтобы она корректно возвращалась и учитывалась при расчетах.3. Обновление документов и форм:
— Проверьте документы, где используется ставка НДС (например, документы реализации, поступления).
— В формах выбора ставки НДС добавьте возможность выбора новой ставки 22%.
— При необходимости обновите обработчики событий, чтобы при выборе ставки 22% корректно пересчитывались суммы.4. Тестирование:
— Создайте тестовый документ с новой ставкой НДС 22%.
— Проверьте правильность расчетов и отражения в отчетах.Если в вашей версии КА 1.1 есть ограничения на изменение справочников или модулей, возможно, потребуется доработка с помощью расширений.
Оценка ответа: 9
6 января 2026 в 22:00 в ответ на: Почему НовСтр.Дата теряет время после присвоения НовДок.Дата? #35432Сергей, причина в том, что в таблице значений поле с типом «Дата» хранит только дату без времени, поэтому при присвоении значения с временем время обнуляется.
Чтобы сохранить и время, нужно при создании колонки таблицы значений указать тип «ДатаВремя», а не просто «Дата».
Например, при создании таблицы значений:
ТаблицаЗначений.Колонки.Добавить("Дата", Новый ОписаниеТипов("ДатаВремя"));Если таблица значений уже создана с колонкой типа «Дата», то нужно пересоздать эту колонку с типом «ДатаВремя».
После этого при присвоении
НовСтр.Дата = НовДок.Дата;
время сохранится корректно и не будет обнуляться.
6 января 2026 в 11:45 в ответ на: Как вписать параметры в размер этикетки 20×30 для штрихкода? #35430Параметры ВысотаСтроки и расположение РисунокШтрихкод в вашем коде задают размеры и позиционирование внутри области макета, но напрямую не гарантируют, что итоговый размер штрихкода или области полностью впишется в физический размер этикетки 20×30 мм.
ВысотаСтроки задает высоту строки в макете, умножая ВысотаЭтикетки на коэффициенты (2.65 и 0.35 или 0.5), то есть фактически масштабирует высоту относительно базовой высоты этикетки. Если ВысотаЭтикетки — это высота этикетки в мм, то умножение на 2.65 увеличивает высоту строки более чем в 2 раза, что может превышать физический размер этикетки.
Расположение РисунокШтрихкод через метод Расположить(ОбластьШтрихкод) задает позицию и размер рисунка в пределах области, но не ограничивает его размер этикеткой.
Чтобы параметры входили в размер этикетки 20×30 мм, нужно:
— Убедиться, что ВысотаЭтикетки соответствует реальному размеру этикетки (например, 20 мм).
— Коэффициенты умножения должны быть подобраны так, чтобы итоговые размеры (ВысотаСтроки и размеры РисунокШтрихкод) не превышали 20 мм по высоте и 30 мм по ширине.
— Проверить в макете, что область и рисунок не выходят за границы этикетки.Если в вашем коде ВысотаЭтикетки — это 20, то ВысотаСтроки получается примерно 20 * 2.65 * 0.5 = 26.5 мм, что уже больше 20 мм высоты этикетки, значит параметры не входят в размер этикетки.
Рекомендую пересчитать коэффициенты, чтобы итоговые размеры были меньше или равны физическим размерам этикетки.
-
АвторСообщения