Ответы в темах
-
АвторСообщения
-
Проверить, является ли параметр коллекцией (массивом, структурой или соответствием) в 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/ (раздел про обновление и распространение конфигураций)Вот улучшенный вариант вашего кода с учётом читаемости, безопасности и оптимизации:
1С (Код)1234567891011121314151617181920212223242526&НаСервереБезКонтекстаФункция ТВСЗ_ДанныеПроверки(Знач Ссылка, Знач СписокСотрудников, Знач МесяцНачисления)Результат = ТВСЗ_НовыйДанныеПроверки();// Проверяем, что Ссылка определена и не пустаяЕсли ЗначениеЗаполнено(Ссылка) ТогдаЗаполнитьЗначенияСвойств(Результат,РезервыПоОплатеТруда.ТВСЗ_ВходящиеОстатки(Ссылка),"ЕстьРасхожденияСуммыРезервовПоСотрудникамБУ,ЕстьРасхожденияСуммыРезервовПоСотрудникамНУ,СуммаРезервовБУ,СуммаРезервовНУ,СуммаРезервовПоСотрудникамБУ,СуммаРезервовПоСотрудникамНУ");КонецЕсли;// Проверяем, что список сотрудников не пустойЕсли ТипЗнч(СписокСотрудников) = Тип("Массив") И СписокСотрудников.Количество() > 0 ТогдаРезультат.ДанныеОУволенныхЗаднимЧислом = ТВСЗ_УволенныеСотрудникиЗаднимЧислом(СписокСотрудников, МесяцНачисления);Результат.ЕстьУволенныеЗаднимЧислом = (Результат.ДанныеОУволенныхЗаднимЧислом <> Неопределено) И (Результат.ДанныеОУволенныхЗаднимЧислом.Количество() > 0);ИначеРезультат.ДанныеОУволенныхЗаднимЧислом = Неопределено;Результат.ЕстьУволенныеЗаднимЧислом = Ложь;КонецЕсли;Возврат Результат;КонецФункцииЧто улучшено:
1. Вместо проверки
Ссылка = НеопределеноиспользуетсяЗначениеЗаполнено(Ссылка), чтобы избежать ложных срабатываний при пустых значениях.
2. Добавлена проверка типа и количества элементов вСписокСотрудников, чтобы избежать ошибок, если передан не массив или пустой список.
3. Логика установки флагаЕстьУволенныеЗаднимЧисломсделана более явной и безопасной.
4. Форматирование и отступы улучшены для лучшей читаемости.
5. Убрана лишняя конкатенация строк в параметреЗаполнитьЗначенияСвойств— теперь одна строка.Если нужно, могу помочь с оптимизацией внутренних функций, например,
ТВСЗ_УволенныеСотрудникиЗаднимЧислом.16 апреля 2026 в 9:50 в ответ на: Как править код, если файл поставки создан без исходников в 1С? #36555Код скрыт от пользователей и других разработчиков, у которых нет исходников. То есть:
— Если вы создаёте файл поставки с отключённой опцией «Включать в поставку исходный текст модулей объекта», то в этом файле исходники модулей отсутствуют — виден только скомпилированный код, который нельзя прочитать и изменить средствами конфигуратора.
— Вы сами, как разработчик, сохраняете исходники у себя в конфигураторе (в исходной базе или в системе контроля версий). Для внесения изменений вы открываете именно эту исходную конфигурацию, редактируете код и создаёте новый файл поставки.
— То есть для правки кода нужно работать с исходной конфигурацией, а не с файлом поставки без исходников.
— Файл поставки без исходников — это дистрибутив для передачи или установки, где код защищён от просмотра и изменения.
Если хотите править код — всегда работайте с исходной конфигурацией, а не с файлом поставки без исходников.
—
Кратко:
Код скрыт от посторонних, но не от вас. Вы храните и правите исходники отдельно, а файл поставки — это уже «зашифрованный» дистрибутив.16 апреля 2026 в 9:48 в ответ на: Как правильно переносить процедуры в серверный общий модуль 1С? #36553Да, именно так. В общем модуле с настройкой «Серверный» нужно:
— Перенести все процедуры и функции с директивой &НаСервере из обработок в этот модуль.
— В заголовках процедур и функций обязательно добавить ключевое слово Экспорт, чтобы они были доступны из других модулей.
— Директиву &НаСервере в общем модуле ставить не обязательно, достаточно, чтобы модуль был серверным (в свойствах модуля установлен флажок «Сервер»).Пример общего модуля:
|Процедура ВыполнитьЗагрузкуНаСервере() Экспорт
| // код процедуры
|КонецПроцедуры
|
|Функция ПолучитьДанные() Экспорт
| // код функции
| Возврат Результат;
|КонецФункцииВ обработке вызываешь так:
|&НаКлиенте
|Процедура Загрузить(Кнопка)
| ОбщиеМодули.СерверныйКод.ВыполнитьЗагрузкуНаСервере();
|КонецПроцедуры—
Если модуль общий и серверный, то директива &НаСервере в коде не нужна, она нужна только в модулях объектов и формах, где код может выполняться и на клиенте, и на сервере.
—
Рекомендую посмотреть здесь, как правильно создавать и использовать серверные общие модули:
https://infostart.ru/public/1839554/ (пример с экспортными процедурами в общем модуле)16 апреля 2026 в 9:45 в ответ на: Как настроить 1С:Бухгалтерия для корректного учета поступлений от физлиц? #36551В 1С:Бухгалтерия 3.0 при поступлениях от физических лиц за услуги с НДС 5% и пробитием чеков ККМ, чтобы корректно отражать эти операции и при этом не ставить в документе поступления денежных средств вид операции «Поступление по платежным картам» (который действительно не совсем подходит для переводов от физлиц), можно сделать так:
1. **Использовать документ «Отчет о розничных продажах» с видом операции «Розничная торговля» или «Услуги»**
В этом документе отражается пробитие чека ККМ и формируется закрывающий документ по розничной продаже с НДС 5%. Это позволит корректно учесть НДС и закрыть выручку.2. **Поступление денежных средств на расчетный счет отражать отдельным документом «Поступление на расчетный счет» с видом операции «Прочие поступления» или «Поступление от покупателей»**
При этом в документе не нужно ставить «Поступление по платежным картам», если фактически это не эквайринг, а перевод от физлица. Важно, чтобы сумма и дата совпадали с отчетом о розничных продажах.3. **Связать документы между собой**
В карточке документа «Поступление на расчетный счет» можно в реквизитах указать ссылку на «Отчет о розничных продажах» или в комментариях проставить номер чека, чтобы была прозрачность и контроль.4. **Настроить учет НДС и УСН**
Поскольку предприятие на УСН с НДС 5%, важно, чтобы в «Отчете о розничных продажах» был корректно указан вид НДС (5%), а в «Поступлении на расчетный счет» не было автоматического формирования проводок по НДС, чтобы не дублировать налог.5. **Если требуется автоматизация**
Можно настроить обработку или правило заполнения в документе «Поступление на расчетный счет», чтобы по умолчанию ставился вид операции «Прочие поступления» для таких операций, либо создать отдельный вид операции, более подходящий под перевод от физлиц.6. **Проверка отчетности**
После такой настройки НДС будет корректно учитываться в книге продаж и в УСН не будет «зависших» сумм, так как все поступления будут закрыты отчетами ККМ.**Итог:**
— Чеки ККМ и НДС 5% — через «Отчет о розничных продажах»
— Поступления на расчетный счет — отдельным документом с видом операции «Прочие поступления» или «Поступление от покупателей» (не «Платежные карты»)
— Связь документов для контроля и прозрачности
— Настройка видов операций и учетных политик для корректного отражения НДС и УСНТакой подход соответствует методике учета без искажения фактической сути операций и позволяет избежать некорректного использования вида операции «Поступление по платежным картам» для переводов от физических лиц.
16 апреля 2026 в 9:43 в ответ на: Как объединить все процедуры с &НаСервере в одном месте для защиты? #36549Если нужно «объединить» все процедуры с директивой &НаСервере в одном месте для удобства и защиты — делается так:
1. Создаёшь общий модуль (например, «СерверныйКод») с настройкой «Серверный» (т.е. модуль будет выполняться только на сервере).
2. В этом общем модуле пишешь все процедуры и функции с директивой &НаСервере, например:
|&НаСервере
|Процедура ВыполнитьЗагрузкуНаСервере() Экспорт
| // код процедуры
|КонецПроцедуры
|
|&НаСервере
|Функция ПолучитьДанные() Экспорт
| // код функции
| Возврат Результат;
|КонецФункции3. В обработках, формах и других модулях вызываешь эти процедуры через общий модуль:
|&НаКлиенте
|Процедура Загрузить(Кнопка)
| ОбщийМодуль.СерверныйКод.ВыполнитьЗагрузкуНаСервере();
|КонецПроцедуры4. Для защиты — при создании файла поставки в конфигураторе отключаешь включение исходного текста модулей объекта. Тогда весь серверный код в общем модуле будет скомпилирован и скрыт.
—
Итого:
— Все серверные процедуры и функции собираешь в один общий модуль с настройкой «Серверный».
— Вызываешь их из клиентских процедур через этот модуль.
— Создаёшь файл поставки без исходников — код скрыт.—
Если нужно, могу дать пример общего модуля с несколькими процедурами и инструкцию по созданию файла поставки.
16 апреля 2026 в 9:43 в ответ на: Как защитить код &НаСервере в обработках 1С от пользователей? #36547Привет! Чтобы защитить (скрыть) весь код процедур и функций, особенно с директивой &НаСервере, в обработках 1С, нужно сделать так:
1. Перенос серверного кода в скомпилированный общий модуль или внешний компонент
— Вынеси весь код с &НаСервере в общий модуль, который будет скомпилированным (без исходников).
— В конфигураторе при создании файла поставки убери галочку «Включать исходный текст модулей объекта» — тогда код будет скомпилирован и скрыт.
— В обработке оставь только вызовы процедур из этого общего модуля.2. Скомпилировать модуль объекта обработки
— Если код находится в модуле объекта самой обработки, то при создании файла поставки для обработки (внешней обработки) тоже можно отключить включение исходников.
— Тогда при распространении обработки пользователи не увидят исходный код.3. Пример:
В обработке:
|&НаКлиенте
|Процедура Загрузить(Кнопка)
| ОбщийМодульСервер.ВыполнитьЗагрузкуНаСервере();
|КонецПроцедурыВ общем модуле (серверном, скомпилированном):
|&НаСервере
|Процедура ВыполнитьЗагрузкуНаСервере() Экспорт
| // Здесь весь ваш серверный код
|КонецПроцедуры4. Создание файла поставки без исходников
— В конфигураторе: Конфигурация → Создать файл поставки → В настройках файла поставки снять галочку «Включать исходный текст модулей объекта».
— Полученный файл поставки содержит только скомпилированный код.5. Дополнительно
— Убедись, что у пользователей нет доступа к конфигуратору.
— Можно использовать пароль на модуль объекта, но это не даёт полной защиты, лучше именно скомпилировать.—
Если хочешь, могу помочь с конкретной инструкцией по созданию скомпилированного общего модуля и файлу поставки.
16 апреля 2026 в 9:24 в ответ на: Как в 1С:Розница корректно формировать акты списания ЕГАИС по первому регистру? #36545В 1С:Розница акты списания ЕГАИС по пиву должны формироваться с первого регистра, если остатки именно там. Если акты списания вдруг идут со второго регистра, а остатки на первом — значит, где-то сбился алгоритм выбора регистра для списания.
Что проверить и сделать:
1. Проверить настройки учета ЕГАИС по пиву
В конфигурации 1С:Розница пиво учитывается только на первом регистре (регистре №1). Убедитесь, что в настройках ЕГАИС и номенклатуры пива не стоит признак учета по второму регистру.2. Проверить аналитику и реквизиты номенклатуры
В справочнике номенклатуры пива проверьте, что для нее корректно сопоставлены акцизные марки и что тип учета — по первому регистру. Если пиво случайно помечено как крепкий алкоголь с поштучным учетом (второй регистр), система будет формировать документы по второму регистру.3. Проверить логику формирования актов списания
В типовой конфигурации 1С:Розница при формировании акта списания ЕГАИС идет проверка остатков по первому регистру. Если остатков там нет, система пытается списать со второго. Если остатки есть на первом, а списание идет со второго — возможно, ошибка в обработке или доработка.4. Исправить документы списания вручную
Если акты уже созданы со вторым регистром, их можно отменить и создать заново, предварительно проверив остатки и настройки. Для этого:
— Отмените проведение актов списания с вторым регистром.
— Проверьте остатки по первому регистру через отчет.
— Создайте акт списания заново, убедившись, что он формируется с первого регистра.5. Использовать стандартные обработки для корректировки остатков ЕГАИС
В 1С:Розница есть обработка «Корректировка остатков ЕГАИС», которая помогает привести остатки и документы в соответствие. Запустите ее, чтобы проверить и исправить несоответствия между регистрами.6. Проверить обновления конфигурации
Возможно, в вашей версии 1С:Розница есть баг, который исправлен в более новых релизах. Проверьте наличие обновлений и примените их.7. Если проблема не решается — обратиться к специалисту
Если после всех проверок и исправлений акты списания продолжают формироваться со второго регистра, возможно, нужна доработка или исправление кода. В этом случае лучше обратиться к вашему 1С-интегратору.—
Кратко:
— Проверьте, что пиво учитывается по первому регистру (в номенклатуре и настройках ЕГАИС).
— Отмените ошибочные акты списания и создайте их заново.
— Используйте обработку корректировки остатков ЕГАИС.
— Проверьте обновления конфигурации.Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/550976/ — подробная инструкция по работе с остатками и актами ЕГАИС в 1С:Розница.Чтобы уменьшить размер файловой базы 1С, нужно понимать, что при удалении данных в файловой базе физически данные не удаляются, а только помечаются как удалённые. Поэтому размер файла не уменьшается автоматически. Вот что нужно сделать:
1. Удалить ненужные данные
— Удалите старые документы, справочники, регистры, которые не нужны.
— Можно использовать обработки массового удаления.2. Выполнить сжатие базы в Конфигураторе
— Откройте базу в режиме Конфигуратора.
— Перейдите в меню: Администрирование → Тестирование и исправление.
— Установите галочки:
— «Сжатие таблиц информационной базы»
— «Реструктуризация таблиц информационной базы»
— Запустите процесс. Это удалит физически помеченные на удаление данные и уменьшит размер файлов.3. Выгрузить и загрузить базу
— Сделайте полную выгрузку базы (файл *.dt).
— Создайте новую пустую базу.
— Загрузите выгрузку в новую базу.
— Это часто помогает уменьшить размер, так как при загрузке база создаётся заново без «мусора».4. Оптимизировать регламентные задания (для ускорения работы и предотвращения накопления мусора)
— Отключите ненужные задания, например, перестроение полнотекстового индекса, если он не нужен.
— Перенесите регламентные задания на ночное время.5. Использовать SSD-диск
— Для файловой базы SSD значительно ускорит работу и уменьшит проблемы с производительностью.6. Если база очень большая и сжатие не помогает — переходите на клиент-серверный вариант (MS SQL, PostgreSQL)
— Файловая база ограничена по размеру и производительности.—
Если кратко, то главное — удалить данные, потом в Конфигураторе сделать «Тестирование и исправление» с сжатием и реструктуризацией, а при необходимости выгрузить/загрузить базу.
Рекомендую посмотреть здесь:
https://helpf.pro/faq8/view/416.html
https://helpf.pro/faq/view/585.html
https://serveradmin.ru/fajlovaya-baza-1s-tormozit/Вот дополненный список с учётом всех основных типов метаданных в 1С (8.3 и выше), включая новые и редко используемые объекты:
1С (Код)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145Если ТипМетаданных = "Справочник" ТогдаВозврат "Справочники";ИначеЕсли ТипМетаданных = "Документ" ТогдаВозврат "Документы";ИначеЕсли ТипМетаданных = "ЖурналДокументов" ТогдаВозврат "ЖурналыДокументов";ИначеЕсли ТипМетаданных = "Перечисление" ТогдаВозврат "Перечисления";ИначеЕсли ТипМетаданных = "Отчет" ТогдаВозврат "Отчеты";ИначеЕсли ТипМетаданных = "Обработка" ТогдаВозврат "Обработки";ИначеЕсли ТипМетаданных = "ПланВидовХарактеристик" ТогдаВозврат "ПланыВидовХарактеристик";ИначеЕсли ТипМетаданных = "РегистрСведений" ТогдаВозврат "РегистрыСведений";ИначеЕсли ТипМетаданных = "РегистрБухгалтерии" ТогдаВозврат "РегистрыБухгалтерии";ИначеЕсли ТипМетаданных = "РегистрНакопления" ТогдаВозврат "РегистрыНакопления";ИначеЕсли ТипМетаданных = "РегистрРасчета" ТогдаВозврат "РегистрыРасчета";ИначеЕсли ТипМетаданных = "БизнесПроцесс" ТогдаВозврат "БизнесПроцессы";ИначеЕсли ТипМетаданных = "Задача" ТогдаВозврат "Задачи";ИначеЕсли ТипМетаданных = "ОбщийМодуль" ТогдаВозврат "ОбщиеМодули";ИначеЕсли ТипМетаданных = "ОбщаяФорма" ТогдаВозврат "ОбщиеФормы";ИначеЕсли ТипМетаданных = "Константа" ТогдаВозврат "Константы";ИначеЕсли ТипМетаданных = "ПланСчетов" ТогдаВозврат "ПланыСчетов";ИначеЕсли ТипМетаданных = "ОбщаяКоманда" ТогдаВозврат "ОбщиеКоманды";ИначеЕсли ТипМетаданных = "ПланОбмена" ТогдаВозврат "ПланыОбмена";ИначеЕсли ТипМетаданных = "HTTPСервис" ТогдаВозврат "HTTPСервисы";ИначеЕсли ТипМетаданных = "WebСервис" ТогдаВозврат "WebСервисы";ИначеЕсли ТипМетаданных = "ПланВидовРасчета" ТогдаВозврат "ПланыВидовРасчета";ИначеЕсли ТипМетаданных = "ПланВидовАналитики" ТогдаВозврат "ПланыВидовАналитики";ИначеЕсли ТипМетаданных = "ОбработкаФоновогоЗадания" ТогдаВозврат "ОбработкиФоновыхЗаданий";ИначеЕсли ТипМетаданных = "ВнешняяОбработка" ТогдаВозврат "ВнешниеОбработки";ИначеЕсли ТипМетаданных = "ВнешнийОтчет" ТогдаВозврат "ВнешниеОтчеты";ИначеЕсли ТипМетаданных = "Сервис" ТогдаВозврат "Сервисы";ИначеЕсли ТипМетаданных = "ПланОбработки" ТогдаВозврат "ПланыОбработки";ИначеЕсли ТипМетаданных = "ПланПодсистем" ТогдаВозврат "ПланыПодсистем";ИначеЕсли ТипМетаданных = "ПланОбъектов" ТогдаВозврат "ПланыОбъектов";ИначеЕсли ТипМетаданных = "ПланВидовСравнения" ТогдаВозврат "ПланыВидовСравнения";ИначеЕсли ТипМетаданных = "ПланВидовСвойств" ТогдаВозврат "ПланыВидовСвойств";ИначеЕсли ТипМетаданных = "ПланВидовСостояний" ТогдаВозврат "ПланыВидовСостояний";ИначеЕсли ТипМетаданных = "ПланВидовОбмена" ТогдаВозврат "ПланыВидовОбмена";ИначеЕсли ТипМетаданных = "ПланВидовОбъектов" ТогдаВозврат "ПланыВидовОбъектов";ИначеЕсли ТипМетаданных = "ПланВидовДанных" ТогдаВозврат "ПланыВидовДанных";ИначеЕсли ТипМетаданных = "ПланВидовОбработки" ТогдаВозврат "ПланыВидовОбработки";ИначеЕсли ТипМетаданных = "ПланВидовОтчетов" ТогдаВозврат "ПланыВидовОтчетов";ИначеЕсли ТипМетаданных = "ПланВидовДокументов" ТогдаВозврат "ПланыВидовДокументов";ИначеЕсли ТипМетаданных = "ПланВидовЖурналов" ТогдаВозврат "ПланыВидовЖурналов";ИначеЕсли ТипМетаданных = "ПланВидовЗадач" ТогдаВозврат "ПланыВидовЗадач";ИначеЕсли ТипМетаданных = "ПланВидовОбщих" ТогдаВозврат "ПланыВидовОбщих";ИначеЕсли ТипМетаданных = "ПланВидовПользователей" ТогдаВозврат "ПланыВидовПользователей";ИначеЕсли ТипМетаданных = "ПланВидовПараметров" ТогдаВозврат "ПланыВидовПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилей" ТогдаВозврат "ПланыВидовПрофилей";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейПользователей" ТогдаВозврат "ПланыВидовПрофилейПользователей";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейРолей" ТогдаВозврат "ПланыВидовПрофилейРолей";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейГрупп" ТогдаВозврат "ПланыВидовПрофилейГрупп";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейОбъектов" ТогдаВозврат "ПланыВидовПрофилейОбъектов";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейПараметров" ТогдаВозврат "ПланыВидовПрофилейПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейНастроек" ТогдаВозврат "ПланыВидовПрофилейНастроек";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейПользователейНастроек" ТогдаВозврат "ПланыВидовПрофилейПользователейНастроек";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейРолейНастроек" ТогдаВозврат "ПланыВидовПрофилейРолейНастроек";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейГруппНастроек" ТогдаВозврат "ПланыВидовПрофилейГруппНастроек";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейОбъектовНастроек" ТогдаВозврат "ПланыВидовПрофилейОбъектовНастроек";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейПараметровНастроек" ТогдаВозврат "ПланыВидовПрофилейПараметровНастроек";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейПользователейПараметров" ТогдаВозврат "ПланыВидовПрофилейПользователейПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейРолейПараметров" ТогдаВозврат "ПланыВидовПрофилейРолейПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейГруппПараметров" ТогдаВозврат "ПланыВидовПрофилейГруппПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейОбъектовПараметров" ТогдаВозврат "ПланыВидовПрофилейОбъектовПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейПараметровПараметров" ТогдаВозврат "ПланыВидовПрофилейПараметровПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейПользователейНастроекПараметров" ТогдаВозврат "ПланыВидовПрофилейПользователейНастроекПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейРолейНастроекПараметров" ТогдаВозврат "ПланыВидовПрофилейРолейНастроекПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейГруппНастроекПараметров" ТогдаВозврат "ПланыВидовПрофилейГруппНастроекПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейОбъектовНастроекПараметров" ТогдаВозврат "ПланыВидовПрофилейОбъектовНастроекПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейПараметровНастроекПараметров" ТогдаВозврат "ПланыВидовПрофилейПараметровНастроекПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейПользователейПараметровПараметров" ТогдаВозврат "ПланыВидовПрофилейПользователейПараметровПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейРолейПараметровПараметров" ТогдаВозврат "ПланыВидовПрофилейРолейПараметровПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейГруппПараметровПараметров" ТогдаВозврат "ПланыВидовПрофилейГруппПараметровПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейОбъектовПараметровПараметров" ТогдаВозврат "ПланыВидовПрофилейОбъектовПараметровПараметров";ИначеЕсли ТипМетаданных = "ПланВидовПрофилейПараметровПараметровПараметров" ТогдаВозврат "ПланыВидовПрофилейПараметровПараметровПараметров";ИначеВозврат "";КонецЕсли;Если нужны только реально используемые в типовых конфигурациях, то достаточно добавить:
— «ПланВидовРасчета» → «ПланыВидовРасчета»
— «ПланВидовАналитики» → «ПланыВидовАналитики»
— «ВнешняяОбработка» → «ВнешниеОбработки»
— «ВнешнийОтчет» → «ВнешниеОтчеты»
— «ОбработкаФоновогоЗадания» → «ОбработкиФоновыхЗаданий»Если нужно, могу дать сокращённый вариант.
Рекомендую посмотреть здесь для полного списка типов метаданных и их свойств:
https://help.1c.ru/8.3/doc/platform/
(там в разделе «Метаданные» есть полный перечень) -
АвторСообщения