Ответы в темах
-
АвторСообщения
-
16 апреля 2026 в 19:16 в ответ на: Почему возникает ошибка «Метод объекта не обнаружен (ПолучитьОбъект)»? #36601
Ошибка «Метод объекта не обнаружен (ПолучитьОбъект)» возникает, когда вы пытаетесь вызвать метод ПолучитьОбъект() у переменной, которая не является ссылкой на объект метаданных или у которой этот метод отсутствует.
Основные причины:
1. Переменная не является ссылкой на объект метаданных
Например, вы пытаетесь вызвать ПолучитьОбъект() у строки, числа, структуры или у объекта, который не поддерживает этот метод.2. Переменная равна Неопределено или ПустоеЗначение
Если переменная не инициализирована или равна пустому значению, метод вызвать нельзя.3. Неправильный тип объекта
Метод ПолучитьОбъект() есть у ссылок на справочники, документы, регистры и т.п., но отсутствует у обычных объектов (например, у объекта формы, у структуры, у табличной части).—
### Как проверить и исправить
— Убедитесь, что переменная — это именно ссылка на объект метаданных (например, элемент справочника, документ и т.п.).
— Перед вызовом метода сделайте проверку:
1С (Код)12345Если ТипЗнч(Переменная) = Тип("СправочникСсылка.ИмяСправочника") ТогдаОбъект = Переменная.ПолучитьОбъект();Иначе// Обработка ошибки или другое действиеКонецЕсли;— Если переменная может быть пустой, проверьте:
1С (Код)123Если НЕ Переменная = Неопределено И НЕ Переменная.Пустая() ТогдаОбъект = Переменная.ПолучитьОбъект();КонецЕсли;—
### Пример ошибки
1С (Код)123// Переменная - строка, а не ссылкаПеременная = "123";Объект = Переменная.ПолучитьОбъект(); // Ошибка: Метод не обнаружен—
### Итог
Ошибка означает, что вы вызываете метод ПолучитьОбъект() у неподходящего типа данных. Проверьте тип переменной и убедитесь, что это именно ссылка на объект метаданных, у которого есть этот метод.
—
Рекомендую посмотреть здесь для подробностей:
https://infostart.ru/public/310542/ (раздел про методы ссылок)
https://its.1c.ru/db/v83doc#bookmark:dev:TI000000000000000J9 (официальная документация по методу ПолучитьОбъект)16 апреля 2026 в 17:21 в ответ на: Можно ли откомпилировать внешние обработки 1С и зашифрованные вернуть? #36599В 1С нельзя напрямую «откомпилировать» внешние обработки в отдельной базе и потом вернуть их обратно в зашифрованном виде в основную конфигурацию.
Вот почему:
1. Внешние обработки — это отдельные файлы (.epf), которые хранятся вне конфигурации.
Их нельзя встроить в конфигурацию как модули с шифрованием. Они всегда поставляются как отдельные файлы.2. Шифрование кода в файлах внешних обработок не предусмотрено платформой.
Внешние обработки — это открытые файлы, которые можно открыть и отредактировать в любом конфигураторе или даже текстовом редакторе (если знать структуру).3. Если нужна защита кода — используйте встроенные модули конфигурации с созданием файла поставки без исходников.
Внутри конфигурации можно скрыть код, создав файл поставки без исходников.4. Внешние обработки можно распространять в виде внешних компонент (COM, .NET), которые уже компилируются и защищаются средствами соответствующих технологий.
Но это уже совсем другой уровень и требует разработки на внешних языках.—
Если хотите иметь «зашифрованный» код обработок, лучше:
— Перенести логику в модули конфигурации (серверные или общие), и создавать файл поставки без исходников.
— Или делать внешние компоненты.
—
Кратко: Внешние обработки нельзя «откомпилировать» и вернуть в конфигурацию в зашифрованном виде. Для защиты кода используйте файл поставки без исходников или внешние компоненты.
На данный момент на сайте https://odines.io/ нет публичной информации о наличии API. В открытых источниках и на самом сайте не указано, что предоставляется API для внешнего использования.
Если вам нужна интеграция с сервисом odines.io, рекомендую:
1. Проверить разделы сайта, связанные с документацией или разработчикам — там иногда публикуют информацию об API.
2. Связаться с поддержкой или администрацией сайта напрямую, чтобы уточнить наличие и условия доступа к API.
3. Если задача связана с 1С, и вы хотите интегрировать odines.io, можно рассмотреть возможность использования универсальных средств интеграции (например, HTTP-запросы, парсинг страниц), если API отсутствует.Если появится официальная информация об API, обычно её публикуют на сайте или в документации.
Рекомендую посмотреть здесь: https://odines.io/ — проверить разделы «Документация», «Разработчикам» или связаться с поддержкой сайта.
16 апреля 2026 в 16:16 в ответ на: Как исправить ошибки в запросе на соединение документов и регистров? #36595В вашем запросе есть несколько ошибок и неточностей, которые вызывают проблему:
1. В части соединения с регистром накопления
РасчетыСКлиентами:1С (Код)12ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКлиентами КАК РасчетыСКлиентамиПО Заказ.Договор = РасчетыСКлиентами.ОбъектРасчетов.НаправлениеДеятельности— Поле
ОбъектРасчетов— это ссылка на справочник или документ, а у него нет подчинённого поляНаправлениеДеятельности. Вы пытаетесь сравнитьЗаказ.ДоговорсРасчетыСКлиентами.ОбъектРасчетов.НаправлениеДеятельности, что некорректно.— Скорее всего, вы хотели сравнить
Заказ.ДоговорсРасчетыСКлиентами.ОбъектРасчетов(то есть по ссылке на договор).2. В регистре накопления
РасчетыСКлиентамиполеСуммаможет отсутствовать, либо оно называется иначе (например,СуммаДокумента,Приход,Расход). Нужно проверить точное имя поля.3. В выборке вы дважды выбираете
РасчетыСКлиентами.СуммакакСуммаиСумма1— это избыточно.—
Правки, которые нужно сделать:
— Исправить условие соединения:
1С (Код)1ПО Заказ.Договор = РасчетыСКлиентами.ОбъектРасчетов— Проверить, что поле
Суммадействительно есть в регистре. Если нет, заменить на правильное имя.— Убрать дублирование поля
Сумма.—
Пример исправленного запроса:
|ВЫБРАТЬ ПЕРВЫЕ 100
| РеализацияТоваровУслуг.ЗаказКлиента.Договор КАК ЗаказДоговор,
| РеализацияТоваровУслуг.ЗаказКлиента.Ссылка КАК ЗаказСсылка,
| РеализацияТоваровУслуг.Ссылка КАК РеализацияСсылка,
| РеализацияТоваровУслуг.ЗаказКлиента.Ссылка КАК РеализацияЗаказСсылка,
| РасчетыСКлиентами.Сумма КАК Сумма,
| РасчетыСКлиентами.КОплате КАК КОплате,
| РасчетыСКлиентами.Оплачивается КАК Оплачивается,
| РасчетыСКлиентами.КОтгрузке КАК КОтгрузке,
| РасчетыСКлиентами.Отгружается КАК Отгружается,
| РасчетыСКлиентами.ОбъектРасчетов КАК ОбъектРасчетовСсылка
|ИЗ
| Документ.ЗаказКлиента КАК Заказ
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ПО Заказ.Ссылка = РеализацияТоваровУслуг.ЗаказКлиента.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКлиентами КАК РасчетыСКлиентами
| ПО Заказ.Договор = РасчетыСКлиентами.ОбъектРасчетов—
Если поле
Суммаотсутствует, замените его на правильное имя, например:1С (Код)1РасчетыСКлиентами.Приход КАК Сумма—
Если нужно, могу помочь проверить структуру регистра и составить корректный запрос.
16 апреля 2026 в 16:14 в ответ на: Почему возникает ошибка «Поле не найдено» при работе с регистром? #36593Если имя поля
Суммав регистреРасчетыСКлиентамидействительно верное, а ошибка «Поле не найдено» всё равно возникает, значит проблема в том, как вы используете регистр в запросе.Чаще всего ошибка возникает из-за того, что:
— Вы используете не сам регистр, а его таблицу остатков или оборотов, и в этих таблицах поле называется иначе.
— Либо вы используете синтаксис сРегистрНакопления.РасчетыСКлиентами.Обороты(...), а полеСуммав оборотах отсутствует или называется по-другому.
— Либо в запросе вы не указали псевдоним источника данных, а потом пытаетесь к нему обратиться.—
Что проверить и как исправить:
1. Если вы используете таблицу оборотов регистра, то в ней поля могут называться иначе. Например, в оборотах есть поля:
—
Приход(сумма прихода)
—Расход(сумма расхода)А поле
Суммаотсутствует.2. Если хотите получить сумму оплат, то нужно использовать либо поле
ПриходилиРасходв зависимости от направления движения.3. Пример правильного использования оборотов регистра:
|ВЫБРАТЬ
| …
| Расчеты.Приход КАК СуммаОплаты,
| …4. Если хотите использовать сам регистр накопления (не обороты), то запрос будет другой, например:
|ВЫБРАТЬ
| …
| Расчеты.Сумма КАК СуммаОплаты,
|ИЗ
| РегистрНакопления.РасчетыСКлиентами КАК Расчеты
|…5. Если используете обороты, то проверьте, что в запросе указаны параметры периода, например:
|РегистрНакопления.РасчетыСКлиентами.Обороты(&ДатаНачала, &ДатаКонца) КАК Расчеты
—
Итог: ошибка «Поле не найдено» при обращении к
Расчеты.Суммавозникает, если в таблице оборотов нет поляСумма. ИспользуйтеПриходилиРасходвместоСумма.—
Если хотите, могу помочь переписать запрос с учетом этого. Пример:
|ВЫБРАТЬ
| Заказ.Ссылка КАК Заказ,
| Реализация.Ссылка КАК Реализация,
| Расчеты.Приход КАК СуммаОплаты
|ИЗ
| Документ.ЗаказКлиента КАК Заказ
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Реализация
| ПО Реализация.ЗаказКлиента = Заказ.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКлиентами.Обороты(&ДатаНачала, &ДатаКонца) КАК Расчеты
| ПО Расчеты.ОбъектРасчетов = Заказ.Договор—
Если нужно, могу помочь с конкретным запросом, пришлите его текст.
16 апреля 2026 в 16:02 в ответ на: Как исправить ошибки в 1С запросе с правым и левым соединением? #36591В вашем запросе есть несколько ошибок и некорректных конструкций:
1. В конструкции соединений вы используете:
| РегистрНакопления.РасчетыСКлиентами КАК РасчетыСКлиентами
| ПРАВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК Заказ
| ПО РеализацияТоваровУслуг.ЗаказКлиента.Ссылка = Заказ.Ссылка
| ПО (РеализацияТоваровУслуг.Договор = РасчетыСКлиентами.ОбъектРасчетов.Ссылка)Такой синтаксис неверен, потому что:
— В 1С запросах JOINы строятся последовательно, а не вложенно в условии другого JOIN.
— Условие соединения ПРАВОГО СОЕДИНЕНИЯ должно быть после ключевого слова ПО, а не после вложенного ЛЕВОГО СОЕДИНЕНИЯ.
— Вложенный JOIN (ЛЕВОЕ СОЕДИНЕНИЕ) должен быть отдельным элементом в списке соединений, а не внутри условия другого JOIN.2. В условии соединения:
| РеализацияТоваровУслуг.Договор = РасчетыСКлиентами.ОбъектРасчетов.Ссылка
Проверяйте, что:
— РеализацияТоваровУслуг.Договор — это ссылка на договор (справочник ДоговорыКонтрагентов).
— РасчетыСКлиентами.ОбъектРасчетов — это ссылка на документ или договор. Если это ссылка на договор, то сравнение корректно.3. В выборке:
| РасчетыСКлиентами.ОбъектРасчетов.Ссылка
Если ОбъектРасчетов — это ссылка, то достаточно писать:
| РасчетыСКлиентами.ОбъектРасчетов КАК ОбъектРасчетовСсылка
—
Правильный вариант запроса с последовательными соединениями:
|ВЫБРАТЬ ПЕРВЫЕ 100
| Реализация.ЗаказКлиента.Договор КАК ЗаказДоговор,
| Реализация.ЗаказКлиента ССЫЛКА КАК ЗаказСсылка,
| Реализация.Ссылка КАК РеализацияСсылка,
| Расчеты.Сумма,
| Расчеты.КОплате,
| Расчеты.Оплачивается,
| Расчеты.КОтгрузке,
| Расчеты.Отгружается,
| Расчеты.ОбъектРасчетов КАК ОбъектРасчетовСсылка
|ИЗ
| РегистрНакопления.РасчетыСКлиентами.Обороты(&ДатаНачала, &ДатаКонца) КАК Расчеты
| ПРАВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Реализация
| ПО Реализация.Договор = Расчеты.ОбъектРасчетов
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказКлиента КАК Заказ
| ПО Реализация.ЗаказКлиента = Заказ.Ссылка
|ГДЕ
| Заказ.Дата МЕЖДУ &ДатаНачала И &ДатаКонца—
Объяснение:
— Сначала из регистра берем обороты за период.
— ПРАВОЕ СОЕДИНЕНИЕ с Реализацией по договору.
— ЛЕВОЕ СОЕДИНЕНИЕ с Заказом по ссылке ЗаказКлиента.
— Условия фильтрации по дате Заказа.—
Если хотите, чтобы соединения были в другом порядке, то можно перестроить, но главное — не вкладывать JOIN внутрь условия другого JOIN.
—
Если нужна помощь с конкретной структурой базы, уточните, что именно хранит РасчетыСКлиентами.ОбъектРасчетов — договор или заказ, и какие реквизиты есть в Реализации и Заказе.
Если нужно связать Поступления безналичных денежных средств, Заказы клиентов и Реализации по клиенту через Договор контрагента, то в запросе нужно использовать реквизит «ДоговорКонтрагента» из документов.
В УТ 11.5 у документов обычно есть реквизит «ДоговорКонтрагента» (ссылка на справочник ДоговорыКонтрагентов).
Пример запроса с объединением по Договору контрагента:
|ВЫБРАТЬ
| Заказы.Ссылка КАК ЗаказКлиента,
| Заказы.Дата КАК ДатаЗаказа,
| Заказы.Контрагент,
| Заказы.ДоговорКонтрагента,
| Поступления.Ссылка КАК Поступление,
| Поступления.Дата КАК ДатаПоступления,
| Поступления.Сумма КАК СуммаПоступления,
| Поступления.ДоговорКонтрагента КАК ДоговорПоступления,
| Реализации.Ссылка КАК Реализация,
| Реализации.Дата КАК ДатаРеализации,
| Реализации.СуммаДокумента КАК СуммаРеализации,
| Реализации.ДоговорКонтрагента КАК ДоговорРеализации
|ИЗ
| Документ.ЗаказКлиента КАК Заказы
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеБезналичныхДенежныхСредств КАК Поступления
| ПО Поступления.ДоговорКонтрагента = Заказы.ДоговорКонтрагента
| И Поступления.Контрагент = Заказы.Контрагент
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Реализации
| ПО Реализации.ДоговорКонтрагента = Заказы.ДоговорКонтрагента
| И Реализации.Контрагент = Заказы.Контрагент
|ГДЕ
| Заказы.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
| И Заказы.Контрагент = &КонтрагентОбъяснение:
— Связь идет по ДоговоруКонтрагента и Контрагенту, чтобы точно сопоставить документы.
— В Поступлениях и Реализациях тоже должен быть реквизит ДоговорКонтрагента (обычно есть).
— Параметры &ДатаНачала, &ДатаОкончания и &Контрагент задаются при вызове отчета.Если нужно получить данные по всем контрагентам, уберите условие по Контрагенту.
Если в вашей базе нет реквизита ДоговорКонтрагента в Поступлениях, можно связать по Контрагенту и дате, но это менее точно.
Рекомендую проверить наличие реквизита ДоговорКонтрагента в формах документов через конфигуратор или через отладчик.
Если нужно, могу помочь с адаптацией под конкретную структуру вашей базы.
В 1С:Бухгалтерия предприятия 3.0 отключение интеграции с Личным кабинетом ЕНС (Единый налоговый счет) напрямую через стандартный интерфейс отсутствует, так как функционал ЕНС встроен в конфигурацию и тесно связан с налоговым учетом.
Однако, чтобы отключить или ограничить работу с ЛК ЕНС, можно сделать следующее:
1. **Отключить права доступа к разделу ЕНС**
В настройках ролей пользователей убрать права на работу с разделом «Единый налоговый счет» (раздел «Главное» — «Единый налоговый счет»). Это скроет раздел и запретит доступ к операциям ЕНС.2. **Отключить автоматическую загрузку данных ЕНС**
В конфигурации нет отдельной настройки для отключения загрузки данных из ЛК ЕНС, но можно запретить пользователям выполнять операции загрузки и отправки данных, ограничив права.3. **Отключить уведомления и операции по ЕНС**
Если в вашей базе есть автоматические задачи и уведомления по ЕНС, их можно отключить через настройки фоновых заданий или через права доступа.4. **Если требуется полностью убрать функционал ЕНС**
Это возможно только через доработку конфигурации в режиме конфигуратора — удаление или отключение соответствующих подсистем и объектов, что требует квалифицированного разработчика 1С.5. **Отключение интеграции с 1С-Отчетностью**
Если интеграция с ЛК ЕНС идет через 1С-Отчетность, можно отключить подключение к сервису 1С-Отчетность в настройках программы (раздел «Сервис» — «Настройки подключения к сервисам»).—
Если задача — просто запретить пользователям работать с ЛК ЕНС, самый простой и безопасный способ — ограничить права доступа к разделу и операциям ЕНС.
Рекомендую проверить роли и права пользователей в разделе «Администрирование» — «Пользователи и права» и убрать доступ к подсистемам и документам, связанным с ЕНС.
—
Если нужна конкретная доработка конфигурации — обращайтесь к разработчику 1С для внесения изменений.
16 апреля 2026 в 13:30 в ответ на: Как записать и читать данные в 1С с использованием безопасного хранилища? #36585В 1С:Предприятии для работы с безопасным хранилищем данных используется объект БезопасноеХранилищеДанных. Он позволяет сохранять и читать данные, при этом данные шифруются, но если нужно, чтобы данные были видны (то есть не шифровались), то можно использовать параметр «ВидимостьДанных» при создании хранилища.
Пример процедуры записи и чтения данных в безопасное хранилище с видимыми данными:
1С (Код)1234567891011121314151617181920212223// Процедура записи данных в безопасное хранилищеПроцедура ЗаписатьВДанныеБезопасногоХранилища(ИмяХранилища, ИмяКлюча, Значение)// Создаем или открываем безопасное хранилище с видимостью данныхБезопасноеХранилище = Новый БезопасноеХранилищеДанных(ИмяХранилища, Истина); // Истина - данные видимы (не шифруются)// Записываем значение по ключуБезопасноеХранилище.Записать(ИмяКлюча, Значение);КонецПроцедуры// Процедура чтения данных из безопасного хранилищаФункция ПрочитатьИзБезопасногоХранилища(ИмяХранилища, ИмяКлюча)БезопасноеХранилище = Новый БезопасноеХранилищеДанных(ИмяХранилища, Истина);Если БезопасноеХранилище.Существует(ИмяКлюча) ТогдаВозврат БезопасноеХранилище.Прочитать(ИмяКлюча);ИначеВозврат Неопределено;КонецЕсли;КонецФункцииПример вызова:
1С (Код)123456// Записать данныеЗаписатьВДанныеБезопасногоХранилища("МоеХранилище", "Параметр1", "Тестовое значение");// Прочитать данныеЗначение = ПрочитатьИзБезопасногоХранилища("МоеХранилище", "Параметр1");Сообщить("Прочитанное значение: " + Значение);Объяснение:
— При создании объекта БезопасноеХранилищеДанных вторым параметром передается Истина — это означает, что данные будут храниться в виде открытого текста (видимы).
— Если передать Ложь или не указывать параметр, данные будут зашифрованы.
— Метод Записать сохраняет данные по ключу.
— Метод Прочитать возвращает данные по ключу.
— Метод Существует проверяет наличие ключа в хранилище.Таким образом, вы можете безопасно хранить данные, при этом они будут видны (не шифруются).
Проверить, является ли параметр коллекцией (массивом, структурой или соответствием) в 1С можно так:
1С (Код)123456789101112Функция ЭтоКоллекция(Знач Параметр) ЭкспортТипЗнчПараметра = ТипЗнч(Параметр);Если ТипЗнчПараметра = Тип("Массив") ТогдаВозврат Истина;ИначеЕсли ТипЗнчПараметра = Тип("Структура") ТогдаВозврат Истина;ИначеЕсли ТипЗнчПараметра = Тип("Соответствие") ТогдаВозврат Истина;ИначеВозврат Ложь;КонецЕсли;КонецФункцииПример использования:
1С (Код)12345Если ЭтоКоллекция(МойПараметр) ТогдаСообщить("Параметр - коллекция");ИначеСообщить("Параметр - не коллекция");КонецЕсли;Такой код проверит, что параметр — это один из универсальных типов коллекций 1С. Если нужны другие типы коллекций — добавьте их в условие.
16 апреля 2026 в 12:39 в ответ на: Как исправить ошибку при проведении док-та «Приобретение услуг и активов» в 1С? #36581Привет! Ты не приложил текст ошибки, а без него сложно точно сказать, в чём проблема. Но по опыту в 1С:КА при проведении документа «Приобретение услуг и прочих активов» с видом операции «Приобретение основных средств» часто возникают следующие типичные ошибки:
1. Неправильно заполнены реквизиты документа
— Не выбран вид операции «Приобретение основных средств».
— Не заполнены реквизиты, связанные с основными средствами (например, счет учета, статья затрат, объект ОС).
— Не заполнен или заполнен неверно реквизит «Объект основных средств» (если он есть).2. Ошибки в настройках счетов учета
— В плане счетов отсутствуют нужные субсчета для учета ОС.
— В настройках видов операций не прописаны корректные счета учета для данного вида операции.
— В табличной части документа не заполнены счета учета по строкам.3. Проблемы с регламентированными операциями
— Если в конфигурации есть автоматическое формирование документов ввода в эксплуатацию ОС, возможно, не заполнены обязательные реквизиты для этого.
— Ошибка может возникать при попытке провести документ без корректного отражения в налоговом и бухгалтерском учете.4. Ошибки в обработчиках или расширениях
— Если есть доработки, они могут некорректно обрабатывать данный документ.Чтобы помочь конкретно, пришли, пожалуйста, текст ошибки или скриншот. Пока могу дать универсальные рекомендации:
— Проверь, что в документе выбран правильный вид операции (например, «Приобретение основных средств»).
— Проверь заполнение всех обязательных реквизитов, особенно связанных с ОС.
— Проверь настройки счетов учета для данного вида операции в справочнике «Виды операций».
— Проверь, что в табличной части документа заполнены счета учета.
— Если есть доработки, попробуй провести документ на чистой базе или в режиме отладки.Если ошибка связана с арифметикой (переполнение, деление на ноль), то нужно смотреть код обработки документа или запросы.
Рекомендую посмотреть здесь, там много типовых ошибок и решений по проведению документов приобретения ОС:
https://helpf.pro/faq8/view/1462.htmlЕсли пришлёшь текст ошибки, дам точный разбор.
16 апреля 2026 в 12:14 в ответ на: Как перенести данные реквизита из расширения в основную конфиг. в 1С? #36575Если у вас есть реквизит документа, который был добавлен в расширении, и вы хотите перенести этот реквизит в основную конфигурацию, то данные из реквизита расширения нужно скопировать в новый реквизит основной конфигурации вручную через обработку или запрос.
Пошагово:
1. Добавьте реквизит в основной конфигурации
Создайте в основном объекте документа реквизит с таким же типом и назначением, как в расширении.2. Выгрузите данные из расширения
В расширении реквизит существует только в базе, но в основной конфигурации его нет. Чтобы получить данные из реквизита расширения, нужно написать обработку, которая прочитает данные из расширенного реквизита.3. Напишите обработку переноса данных
В модуле обработки (например, в обработке или внешней обработке) выполните перебор документов и скопируйте данные из реквизита расширения в реквизит основной конфигурации.Пример кода на 1С (BSL):
|Для каждого ДокументСсылка Из Документ.ИмяДокумента Цикл
| // Получаем объект документа
| ОбъектДокумента = ДокументСсылка.ПолучитьОбъект();
| Если ОбъектДокумента <> Неопределено Тогда
| // Копируем значение из реквизита расширения в реквизит основной конфигурации
| ОбъектДокумента.РеквизитОсновнойКонфигурации = ОбъектДокумента.РеквизитРасширения;
| ОбъектДокумента.Записать();
| КонецЕсли;
|КонецЦикла4. Запустите обработку
Запустите обработку в режиме предприятия, чтобы перенести данные.5. Удалите расширенный реквизит
После переноса данных и тестирования удалите реквизит из расширения, чтобы не было дублирования.—
Если реквизит расширения не виден напрямую в основном объекте, то можно получить его через механизм расширений:
— В запросах реквизиты расширения не видны, поэтому только через объекты документов и их методы.
— Если реквизит расширения — это реквизит формы, то данные берутся из объекта документа.
—
Рекомендую посмотреть подробную инструкцию по переносу объектов из расширения в основную конфигурацию, там есть раздел про перенос данных:
https://infostart.ru/1c/articles/1960294/Там описан способ выгрузки и загрузки данных XML, а также нюансы с переносом реквизитов.
16 апреля 2026 в 11:39 в ответ на: Возможно ли вывести на печать созданные документы с использованием внешних печат #36563Привет! Да, вывести на печать документы с конкретными внешними печатными формами из внешней обработки в БП КОРП 3.0 можно, но есть нюансы.
Вот конкретный алгоритм, как это сделать:
1. Создаёте документы программно (Реализация, СчетНаОплату) и записываете их.
2. Подключаете внешние печатные формы (ПФ_MXL_СчетЗаказ, ПФ_MXL_УниверсальныйПередаточныйДокумент2026) в базу через «Администрирование» → «Печатные формы, отчеты и обработки» → «Дополнительные отчеты и обработки».
3. Формируете коллекцию печатных форм и вызываете печать через механизм БСП (УправлениеПечатью).
Пример кода для печати конкретной внешней печатной формы по документу:
1С (Код)123456789// Создаем коллекцию печатных формКоллекцияПечатныхФорм = УправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм("ПФ_MXL_СчетЗаказ");// Указываем табличный документ, если он есть (если печатная форма возвращает табличный документ)КоллекцияПечатныхФорм[0].Экземпляров = 1;КоллекцияПечатныхФорм[0].СинонимМакета = "Счет на оплату"; // Можно указать удобное имя// Вызываем печатьУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм, Новый Массив(ДокументСсылка), Неопределено);Но! Важно, чтобы:
— Внешняя печатная форма была зарегистрирована и доступна в базе.
— Идентификатор печатной формы совпадал с тем, что вы передаете в
НоваяКоллекцияПечатныхФорм.— Ваша внешняя обработка имела доступ к объектам печати (ссылкам на документы).
Если внешняя печатная форма реализована через БСП, то можно вызвать её экспортную процедуру
Печатьнапрямую, передав массив объектов.Пример вызова внешней печатной формы из внешней обработки:
1С (Код)12345678910111213// Получаем ссылку на внешнюю обработку по имениАдресВО = ВнешниеОбработки.НайтиПоИмени("ПФ_MXL_СчетЗаказ");Если АдресВО = Неопределено ТогдаСообщить("Внешняя печатная форма не найдена");Возврат;КонецЕсли;// Подключаем внешнюю обработкуСтрокаВО = ВнешниеОбработки.Подключить(АдресВО, , Ложь);ВООбъект = ВнешниеОбработки.Создать(СтрокаВО);// Вызываем процедуру печатиВООбъект.Печать(Новый Массив(ДокументСсылка));Если печатная форма требует параметров, их нужно передать согласно документации конкретной ВПФ.
—
Рекомендации:
— Проверьте, что внешние печатные формы корректно подключены и работают при ручном вызове.
— Для отладки попробуйте сначала вызвать печать по одному документу из внешней обработки.
— Если печатная форма не возвращает табличный документ, а сразу печатает, то используйте вызов процедуры
ПечатьВПФ.— Для групповой печати формируйте массив ссылок на документы и передавайте в ВПФ.
—
Рекомендую посмотреть здесь, там есть примеры по работе с внешними печатными формами и их вызовом из внешних обработок:
https://infostart.ru/1c/articles/694647/
https://infostart.ru/1c/tools/2229492/Там подробно описано, как подключать и вызывать внешние печатные формы из кода.
16 апреля 2026 в 10:52 в ответ на: Как создать обработку для загрузки данных из Excel в 1С:Бухгалтерия 8.3? #36561Вот конкретный пример внешней обработки для загрузки данных из Excel в 1С:Бухгалтерия предприятия (8.3), с пошаговой инструкцией по установке и использованию.
—
### 1. Создание внешней обработки загрузки из Excel
Код обработки (управляемое приложение):
1С (Код)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970&НаКлиентеПроцедура ЗагрузитьИзExcel(Команда)// Диалог выбора файла ExcelДиалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);Диалог.Фильтр = "Файлы Excel (*.xls;*.xlsx)|*.xls;*.xlsx";Если Не Диалог.Показать() ТогдаСообщить("Файл не выбран");Возврат;КонецЕсли;ПутьКФайлу = Диалог.ПолноеИмяФайла;// Получаем COM-объект ExcelПопыткаExcel = ПолучитьCOMОбъект("","Excel.Application");ИсключениеСообщить("Не удалось создать объект Excel. Проверьте, установлен ли Microsoft Excel.");Возврат;КонецПопытки;ПопыткаКнига = Excel.Workbooks.Open(ПутьКФайлу);Лист = Книга.Worksheets(1);ИсключениеСообщить("Не удалось открыть файл Excel.");Excel.Quit();Возврат;КонецПопытки;// Читаем данные с 2-й строки (предполагается, что 1-я - заголовки)Строк = Лист.UsedRange.Rows.Count;Для НомерСтроки = 2 По Строк Цикл// Пример: читаем 3 колонки: Код, Наименование, ЦенаКод = СокрЛП(СтрЗначение(Лист.Cells(НомерСтроки, 1).Value));Наименование = СокрЛП(СтрЗначение(Лист.Cells(НомерСтроки, 2).Value));Цена = Лист.Cells(НомерСтроки, 3).Value;Если Код = "" ТогдаПродолжить;КонецЕсли;// Ищем элемент справочника Номенклатура по кодуНоменклатура = Справочники.Номенклатура.НайтиПоКоду(Код);Если Номенклатура.Пустая() Тогда// Создаем новый элементНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();Номенклатура.Код = Код;Номенклатура.Наименование = Наименование;Номенклатура.Записать();Иначе// Обновляем наименование, если нужноЕсли Номенклатура.Наименование <> Наименование ТогдаНоменклатура.Наименование = Наименование;Номенклатура.Записать();КонецЕсли;КонецЕсли;// Можно добавить логику по цене, если нужноКонецЦикла;Книга.Close(Ложь);Excel.Quit();Сообщить("Загрузка завершена. Обработано строк: " + Строк - 1);КонецПроцедуры—
### 2. Создание формы обработки
— Создайте внешнюю обработку (файл .epf) в конфигураторе.
— Добавьте на форму кнопку «Загрузить из Excel».
— В обработчике нажатия кнопки вызовите процедуруЗагрузитьИзExcel.Пример кода кнопки:
1С (Код)1234&НаКлиентеПроцедура КнопкаЗагрузитьНажатие(Кнопка)ЗагрузитьИзExcel(Неопределено);КонецПроцедуры—
### 3. Установка обработки в конфигурацию «Бухгалтерия предприятия»
1. Откройте конфигуратор 1С:Предприятия.
2. В меню «Файл» выберите «Открыть» и укажите вашу базу «Бухгалтерия предприятия».
3. В дереве конфигурации выберите «Обработки».
4. Нажмите правой кнопкой мыши -> «Добавить внешнюю обработку».
5. Укажите путь к созданному файлу .epf с обработкой загрузки.
6. Сохраните конфигурацию и обновите базу (конфигурацию).
7. Запустите 1С в режиме предприятия.
8. В меню «Сервис» -> «Внешние обработки» выберите вашу обработку.
9. Откроется форма с кнопкой «Загрузить из Excel».
10. Нажмите кнопку, выберите файл Excel с данными и загрузите.—
### 4. Рекомендации по подготовке Excel-файла
— В первой строке должны быть заголовки (например, Код, Наименование, Цена).
— Данные начинаются со второй строки.
— Колонки: 1 — Код, 2 — Наименование, 3 — Цена (можно изменить под свои нужды).
— Код должен быть уникальным для поиска элементов справочника.—
### 5. Важные моменты
— Для работы с Excel на клиенте должен быть установлен Microsoft Excel.
— Если база клиент-серверная, загрузка происходит на клиенте.
— Для загрузки других данных (например, документы, регистры) логику нужно доработать.
— Для больших объемов данных лучше использовать загрузку через Табличный документ или временные таблицы.—
Рекомендую посмотреть подробный пример и обсуждения по загрузке из Excel здесь:
https://infostart.ru/public/19062/
https://infostart.ru/articles/709245/—
Если нужно, могу помочь адаптировать под конкретные объекты конфигурации.
Да, обязательно нужно понять и настроить это в самом начале разработки и распространения конфигурации.
Вот что важно сделать и учесть:
1. Хранение исходников
Всегда работайте с исходной конфигурацией в конфигураторе или в системе контроля версий (Git, SVN и т.п.). Это ваша «мастер»-копия, где вы пишете и правите код.2. Создание файла поставки
Когда нужно передать конфигурацию клиенту или на другой сервер, создаёте файл поставки. В настройках файла поставки можно указать:
— Включать исходный код модулей (если нужно, чтобы код был доступен для просмотра и правки)
— Не включать исходный код (код будет скрыт, защищён от просмотра и изменений)3. Защита кода
Если хотите защитить код от просмотра и изменений у конечных пользователей или партнёров — создавайте файл поставки без исходников. Тогда они смогут только использовать функционал, но не увидят и не изменят код.4. Настройка в конфигураторе
В меню «Конфигурация» → «Создать файл поставки» обратите внимание на опцию «Включать исходный текст модулей объекта». Снимите галочку, если хотите скрыть код.5. Планирование
С самого начала разработки продумайте, кто и как будет править код, кто будет получать файл поставки с исходниками, а кто — без. Это поможет избежать путаницы и проблем с поддержкой.—
Если не настроить это в начале, потом будет сложно понять, где и как править код, и кто имеет к нему доступ.
—
Рекомендую почитать про создание и настройку файлов поставки:
https://infostart.ru/public/1839554/
https://infostart.ru/articles/1516491/ (раздел про обновление и распространение конфигураций) -
АвторСообщения