Ответы в темах
-
АвторСообщения
-
15 апреля 2026 в 17:01 в ответ на: Как создать и настроить внешнюю обработку в конфигураторе 1С? #36505
Окей, раз создали внешнюю обработку в конфигураторе — дальше по шагам:
1. Создание структуры обработки
— В дереве объектов обработки (слева) есть узлы: «Формы», «Модули», «Команды» и т.п.
— Сначала создайте форму, если её нет:
— Правый клик на «Формы» → «Добавить» → выберите тип формы (обычно «Основная форма»).
— Назовите форму, например, «Форма».2. Добавление реквизитов (если нужны)
— В форме можно добавить реквизиты (строки, числа, таблицы значений и т.п.).
— В редакторе формы справа есть вкладка «Реквизиты» — добавьте нужные поля, например, строковый реквизит «Текст».3. Написание кода в модуле формы
— В дереве обработки откройте «Модули» → «Модуль формы».
— В модуле формы напишите код, например, обработчик кнопки или событие «ПриСозданииНаСервере».
— Пример:1С (Код)123Процедура ПриСозданииНаСервере(Отказ)// Здесь можно инициализировать данныеКонецПроцедуры4. Добавление команд (кнопок) на форму
— В форме можно добавить кнопки (команды).
— В редакторе формы справа вкладка «Команды» → «Добавить».
— Задайте имя команды, например, «Выполнить».
— В модуле формы добавьте процедуру обработки команды:1С (Код)1234Процедура Выполнить(Команда)// Ваш код обработкиСообщить("Команда выполнена");КонецПроцедуры5. Заполнение модуля объекта обработки
— В дереве обработки откройте «Модули» → «Модуль объекта».
— Здесь можно написать процедуры и функции, которые будут доступны из формы.
— Например, вынесите логику исправления табуляций сюда.6. Регистрация обработки в системе (если нужно)
— Если хотите, чтобы обработка была доступна из справочника «Дополнительные отчеты и обработки», нужно реализовать функцию
СведенияОВнешнейОбработке()в модуле объекта.
— Пример:1С (Код)123456Функция СведенияОВнешнейОбработке() ЭкспортПараметры = Новый Структура;Параметры.Вставить("Версия", "1.0");Параметры.Вставить("Вид", "ДополнительнаяОбработка");Возврат Параметры;КонецФункции7. Сохранение и тестирование
— Сохраните обработку (Файл → Сохранить).
— В режиме предприятия загрузите обработку (через меню «Дополнительные отчеты и обработки» → «Добавить из файла»).
— Запустите форму и проверьте работу.—
Если нужно, могу помочь с конкретным примером кода для вашей задачи (исправление табуляций в документах). Просто скажите.
15 апреля 2026 в 17:00 в ответ на: Как обеспечить защиту интеллектуальной собственности в 1С 8.3.27? #36503В 1С 8.3.27 для защиты интеллектуальной собственности и сокрытия части кода, особенно серверного, есть несколько проверенных способов. Вот конкретное решение для вашего случая (код на сервере):
1. Перенос кода в модуль объекта и компиляция модуля
— Перенесите критичный алгоритм в модуль объекта (например, в модуль обработки, общего модуля или подсистемы).
— Сделайте этот модуль скомпилированным (без исходного текста).
— Для этого:
— Создайте пустую конфигурацию (файловую базу).
— Включите в неё вашу внешнюю обработку или общий модуль с нужным кодом.
— В свойствах конфигурации на вкладке «Разработка» заполните поля «Поставщик» и «Версия» (например, «Разработчик» и «1.0.0»).
— Обновите конфигурацию (F7).
— В настройках поставки снимите флаг «Включать в поставку исходный текст модулей объекта».
— Создайте файл поставки (без создания файла обновления).
— Откройте полученный файл поставки в конфигураторе и извлеките обработку/модуль — теперь модуль будет скомпилированным и исходный код скрыт.Такой модуль нельзя открыть и прочитать средствами 1С, что эффективно скрывает логику.
2. Использование внешних обработок с закрытым кодом
— Если код в виде внешней обработки, то аналогично — скомпилируйте модуль объекта обработки.
— Вызовы из основной конфигурации идут через вызов внешней обработки.
— Это позволяет обновлять основную конфигурацию без раскрытия кода.3. Ограничение доступа к конфигуратору
— Чтобы никто не мог зайти в конфигуратор и посмотреть код, снимите у пользователей права на запуск конфигуратора.
— Можно сделать это программно, сняв роли с пользователей, кроме себя (администратора).
— Также можно сменить пароль администратора.4. Защита от опасных действий
— В 1С 8.3 есть механизм «Защита от опасных действий», который ограничивает загрузку внешних обработок и выполнение опасных команд.
— Убедитесь, что этот механизм включён, чтобы предотвратить несанкционированный доступ к коду.5. Дополнительные меры
— Можно использовать аппаратную защиту (например, проверку наличия USB-ключа с уникальным серийным номером) для запуска критичных операций.
— Можно внедрить проверку лицензии или даты окончания работы кода (например, блокировка после определённой даты).—
Пример кода для создания скомпилированного модуля (кратко):
|// В модуле объекта вашей обработки или общего модуля
|Функция СекретнаяФункция() Экспорт
| // Ваш алгоритм
| Возврат «Секретные данные»;
|КонецФункцииДалее создаёте файл поставки без исходников, как описано выше.
—
Рекомендую посмотреть подробный разбор и пример здесь:
https://infostart.ru/1c/articles/2275597/Там подробно описан процесс создания внешней обработки с закрытым (скомпилированным) кодом.
—
Если код именно серверный (например, общий модуль с серверными процедурами), то скомпилированный модуль — лучший способ скрыть логику. В 1С 8.3.27 это работает стабильно.
—
Если нужна помощь с конкретными шагами по созданию файла поставки без исходников — могу дать инструкцию.
15 апреля 2026 в 16:56 в ответ на: Существуют ли приложения для создания *.bsl или *.epf файлов без 1С? #36501Форматы *.bsl и *.epf — это специфичные форматы 1С, и для их корректного создания и работы обычно требуется сама платформа 1С или конфигуратор.
Однако, если 1С под рукой нет, можно сделать так:
1. Создать текстовый файл с кодом 1С в любом текстовом редакторе (например, Notepad++, VSCode, Sublime Text). Расширение можно временно дать
.bsl— это просто текстовый файл с кодом на встроенном языке 1С.2. Для файла обработки (*.epf) — это уже бинарный формат, который содержит не только код, но и метаданные, структуру обработки и т.п. Создать его вручную без 1С невозможно.
3. Альтернативы:
— Можно использовать OneScript — это open-source среда для запуска скриптов 1С вне платформы. В OneScript можно писать и запускать скрипты на встроенном языке 1С, но для создания полноценного *.epf файла тоже нет.
— Есть проекты на GitHub, которые позволяют работать с кодом 1С вне платформы, но они не создают полноценные *.epf или *.bsl файлы, а скорее помогают с анализом и редактированием кода.
—
### Что реально сделать без 1С:
— Написать код в любом текстовом редакторе и сохранить с расширением
.bsl(просто текст).— Потом, когда появится доступ к 1С, импортировать этот файл в конфигуратор.
—
### Если нужно именно *.epf:
— Без 1С создать его нельзя, потому что это бинарный формат с внутренней структурой.
— Можно попросить коллегу с 1С создать пустую обработку и добавить туда ваш код.
—
### Резюме:
— Для *.bsl — достаточно текстового редактора, это обычный текст.
— Для *.epf — нужен конфигуратор 1С.
—
Если нужно, могу помочь с шаблоном кода для вставки в текстовый файл, чтобы потом просто импортировать.
В коде с точки зрения синтаксиса 1С ошибок нет, логика тоже простая и правильная — рассчитывается процент наценки по формуле:
|ПроцентНаценки = (ЦенаПродажи — ЦенаЗакупки) * 100 / ЦенаЗакупки;
Однако есть несколько моментов, которые могут привести к проблемам или неожиданному поведению:
1. Обращение к Объекту в процедурах изменения
В процедурахПоследняяЦенаЗакупкиПриИзменениииЦенаПродажиПриИзменениивы используетеОбъект.ПроцентНаценкии другие поля.
Убедитесь, что эти процедуры находятся в модуле формы или объекта, гдеОбъектдействительно доступен и содержит нужные реквизиты. Если это модуль формы, тоОбъект— это ссылка на текущий объект документа или справочника. Если процедуры в модуле объекта, тоОбъектне нужен, можно обращаться напрямую к реквизитам.
Если процедуры в модуле формы, то всё нормально.2. Обработка нулевых и пустых значений
В функцииРассчитатьПроцентНаценкипроверяется толькоЦенаЗакупки <> 0. Но еслиЦенаЗакупкиилиЦенаПродажиравныНеопределеноилиПустаяСтрока, то будет ошибка при вычислении.
Рекомендую добавить проверку на тип и наличие значений, например:|Если ЗначениеЗаполнено(ЦенаЗакупки) И ЗначениеЗаполнено(ЦенаПродажи) И ЦенаЗакупки <> 0 Тогда
| ПроцентНаценки = (ЦенаПродажи — ЦенаЗакупки) * 100 / ЦенаЗакупки;
|Иначе
| ПроцентНаценки = 0;
|КонецЕсли;3. Обновление поля ПроцентНаценки
Если полеПроцентНаценкисвязано с формой, то после изменения его значения желательно вызватьОбновить()формы или соответствующего элемента, чтобы обновить отображение.4. Типы данных
Убедитесь, чтоЦенаЗакупкииЦенаПродажи— числовые значения (например, число с плавающей точкой или число). Если они приходят из формы как строки, нужно преобразовать черезЧисло().5. Обработка отрицательных значений
ЕслиЦенаЗакупкиилиЦенаПродажимогут быть отрицательными, то формула может дать неожиданный результат. Проверьте бизнес-логику.Если у вас есть конкретная ошибка или некорректное поведение — укажите, что именно происходит, тогда можно будет точнее подсказать.
—
Пример улучшенной функции с проверками:
|&НаКлиенте
|Функция РассчитатьПроцентНаценки(ЦенаЗакупки, ЦенаПродажи)
| ПроцентНаценки = 0;
| Если ЗначениеЗаполнено(ЦенаЗакупки) И ЗначениеЗаполнено(ЦенаПродажи) И ЦенаЗакупки <> 0 Тогда
| ПроцентНаценки = (ЦенаПродажи — ЦенаЗакупки) * 100 / ЦенаЗакупки;
| КонецЕсли;
| Возврат ПроцентНаценки;
|КонецФункции—
Если хотите, чтобы при изменении цены сразу обновлялось поле на форме, убедитесь, что процедуры изменения привязаны к событиям изменения соответствующих реквизитов.
Чтобы вставить номер заказа в макет печатной формы расходной накладной через расширение, сделайте так:
1. Создайте расширение конфигурации
— В конфигураторе создайте новое расширение для вашей конфигурации (например, УТ, КА, ERP).2. Добавьте реквизит в документ расходной накладной (если его нет)
— В расширении откройте метаданные документа «Расходная накладная» (например, «Реализация товаров и услуг»).
— Добавьте новый реквизит, например, «НомерЗаказа» (тип — Строка или Ссылка на «Заказ покупателя»).
— Если реквизит уже есть, этот шаг пропускайте.3. Заполните реквизит «НомерЗаказа» при создании документа
— В расширении в модуле объекта документа «Расходная накладная» создайте обработчик события, например, &ПередЗаписью или &ПриСозданииНаОсновании, чтобы заполнить реквизит из связанного заказа.
— Пример кода:1С (Код)123456789&НаСервереПроцедура ПриЗаписи(Отказ)Если ЗначениеЗаполнено(ЭтотОбъект.Основание) ТогдаЗаказ = ЭтотОбъект.Основание.ЗаказПокупателя;Если ЗначениеЗаполнено(Заказ) ТогдаЭтотОбъект.НомерЗаказа = Заказ.Номер;КонецЕсли;КонецЕсли;КонецПроцедуры4. Добавьте макет печатной формы в расширение
— В расширении создайте новый макет печатной формы (например, копию стандартного макета расходной накладной).
— В макете добавьте поле для вывода реквизита «НомерЗаказа».
— В макете (например, в табличной части или в шапке) вставьте текстовое поле с выражением:1С (Код)1&[НомерЗаказа]5. Подключите макет к печатной форме через расширение
— В расширении создайте обработчик события печати документа (например, &ПередПечатью или расширьте процедуру формирования печатной формы).
— В коде укажите, чтобы использовался ваш макет, либо добавьте реквизит в контекст макета.Пример расширения процедуры печати:
1С (Код)12345678&НаКлиентеПроцедура Печать(Команда)Макет = ЭтотОбъект.ПолучитьМакет("МакетРасходнойНакладнойСНомеромЗаказа");Параметры = Новый Структура;Параметры.Вставить("НомерЗаказа", ЭтотОбъект.НомерЗаказа);Отчет = Макет.Вывести(Параметры);Отчет.Показать();КонецПроцедуры6. Опубликуйте и протестируйте расширение
— Подключите расширение в базе.
— Создайте расходную накладную на основании заказа.
— Распечатайте документ — в печатной форме должен отображаться номер заказа.—
Если в вашей конфигурации печатная форма строится через встроенный механизм (например, через объект «ПечатнаяФорма» или «Отчет»), то нужно расширить соответствующий отчет или макет, добавив туда реквизит и поле.
Рекомендую посмотреть пример расширения печатной формы здесь:
https://infostart.ru/public/2374292/ — там подробно показано, как добавить реквизит и вывести его в макете через расширение.Если нужна помощь с конкретной конфигурацией — укажите её, чтобы дать точный код.
15 апреля 2026 в 16:30 в ответ на: Как создать и загрузить модуль в 1С: Бухгалтерия КОРП без кнопки «создать»? #36495В редакции 3.0 Бухгалтерии КОРП действительно нельзя просто так создать новый общий модуль через конфигуратор — там модуль либо уже есть, либо его нужно загрузить из файла.
Чтобы обойти это ограничение и запустить скрипт, сделайте так:
1. Создайте общий модуль в отдельной пустой базе 1С (например, в обычной базе «Управление торговлей» или «Бухгалтерия предприятия» без ограничений).
2. В этом модуле напишите нужный код (процедуру исправления табуляций).
3. В конфигураторе этой базы выгрузите модуль в файл (*.bsl).
4. В вашей базе КОРП в конфигураторе импортируйте этот модуль из файла (через меню «Файл» → «Загрузить из файла»).
5. После загрузки модуля в базу, в режиме предприятия вызовите процедуру из этого модуля через окно отладки или через команду.
—
Если нет возможности создать отдельную базу, можно сделать так:
— Создайте обработку (файл *.epf) в любой базе, где можно писать код.
— В обработке напишите процедуру исправления табуляций.
— Запустите обработку в вашей базе КОРП и выполните процедуру.
—
Пример кода для обработки (модуль обработки):
1С (Код)12345678910111213141516171819202122232425262728293031323334Процедура Выполнить(Команда)ИсправитьТабуляцииВНазначенииПлатежа();КонецПроцедурыПроцедура ИсправитьТабуляцииВНазначенииПлатежа()Запрос = Новый Запрос;Запрос.Текст =|ВЫБРАТЬ| Док.Ссылка|ИЗ| Документ.ПлатежноеПоручениеСписаниеДенежныхСредств КАК Док|ГДЕ| СОДЕРЖИТ(Док.НазначениеПлатежа, Символ(9))Выборка = Запрос.Выполнить().Выбрать();КоличествоИсправлено = 0;Пока Выборка.Следующий() ЦиклДокОбъект = Выборка.Ссылка.ПолучитьОбъект();НовыйТекст = СтрЗаменить(ДокОбъект.НазначениеПлатежа, Символ(9), " ");Если НовыйТекст <> ДокОбъект.НазначениеПлатежа ТогдаДокОбъект.НазначениеПлатежа = НовыйТекст;ПопыткаДокОбъект.Записать();КоличествоИсправлено = КоличествоИсправлено + 1;ИсключениеСообщить("Ошибка записи документа: " + ДокОбъект.Ссылка);КонецПопытки;КонецЕсли;КонецЦикла;Сообщить("Исправлено документов: " + Строка(КоличествоИсправлено));КонецПроцедуры—
Таким образом, вы обойдёте ограничение на создание модулей в КОРП и сможете выполнить исправление.
Если нужно в документ «Расходная накладная» (например, в типовой конфигурации УТ, КА или ERP) добавить номер заказа клиента, с которым связана эта накладная, то обычно делают так:
1. Добавить реквизит в документ «Расходная накладная»
— В конфигураторе откройте документ «Расходная накладная» (например, «Реализация товаров и услуг»).
— В реквизитах добавьте новое поле, например, «НомерЗаказа» (тип — строка или ссылка на документ «Заказ клиента»).
— Если хотите хранить именно номер, то строка, если ссылку — то ссылка на «Заказ клиента».2. Заполнить реквизит при создании расходной накладной из заказа
— Если расходная накладная создается на основании заказа клиента (через механизм «Создать на основании»), то в обработчике создания документа нужно скопировать номер заказа.
— В модуле документа «Расходная накладная» или в обработчике создания на основании добавьте код, например:1С (Код)12345678// В процедуре создания на основанииПроцедура ПриСозданииНаОсновании(Источник, Отказ)Если ТипЗнч(Источник) = Тип("ДокументСсылка.ЗаказКлиента") ТогдаЭтотОбъект.НомерЗаказа = Источник.Номер;// Или если ссылка, то// ЭтотОбъект.ЗаказКлиента = Источник;КонецЕсли;КонецПроцедуры3. Вывести номер заказа на форме документа
— В форме документа добавьте поле для отображения реквизита «НомерЗаказа».
— Можно сделать поле только для чтения.4. Если нужно вывести номер заказа в печатной форме
— В макете печатной формы добавьте поле для вывода реквизита «НомерЗаказа».
— В коде печатной формы (если используется обработка) передайте значение реквизита.5. Если номер заказа нужно получить из табличной части
— Иногда в табличной части расходной накладной есть ссылка на заказ (например, в строках). Тогда можно получить номер заказа из строки:1С (Код)1234Если ЭтотОбъект.Товары.Количество() > 0 ТогдаНомерЗаказа = ЭтотОбъект.Товары[0].ЗаказКлиента.Номер;ЭтотОбъект.НомерЗаказа = НомерЗаказа;КонецЕсли;6. Если заказ не связан напрямую, а через документ реализации
— Тогда нужно получить заказ через документ реализации, например:1С (Код)123456Если ЗначениеЗаполнено(ЭтотОбъект.Основание) ТогдаЗаказ = ЭтотОбъект.Основание.ЗаказКлиента;Если ЗначениеЗаполнено(Заказ) ТогдаЭтотОбъект.НомерЗаказа = Заказ.Номер;КонецЕсли;КонецЕсли;—
Если нужна конкретика по вашей конфигурации — укажите, какая именно (УТ, ERP, КА, Бухгалтерия и т.п.), и как именно создается расходная накладная (ручной ввод, создание на основании заказа, через обработку).
Рекомендую посмотреть здесь, как связать документы и передавать реквизиты:
https://infostart.ru/public/2374292/ (пример с передачей данных из заказа в УПД, можно адаптировать под расходную накладную)15 апреля 2026 в 15:58 в ответ на: Почему требуется пересчет в РМ за прошлые периоды из-за регистра ЗаданияКРаспред #36491Привет! РегистрСведений.ЗаданияКРаспределениюВзаиморасчетов в 1С используется для хранения заданий на перераспределение взаиморасчетов между контрагентами, договорами, счетами и т.п. Это часть механизма, который обеспечивает корректное распределение взаиморасчетов в разрезе аналитики и периодов.
Если в помощнике закрытия периода (Обработка.ОперацииЗакрытияМесяца) появляется требование пересчета за прошлые, уже закрытые периоды, то это обычно связано с тем, что в регистре ЗаданияКРаспределениюВзаиморасчетов остались невыполненные или частично выполненные задания, которые требуют перерасчета взаиморасчетов. Программа считает, что данные по взаиморасчетам за эти периоды не окончательные и требуют корректировки.
Причины появления таких заданий и требования пересчета:
1. Изменения в документах прошлых периодов — если были внесены исправления, перепроведение или добавлены документы с датами в уже закрытых периодах, то система создает задания на перераспределение взаиморасчетов, чтобы учесть эти изменения.
2. Нарушение последовательности проведения документов — если документы не проведены в хронологическом порядке, или есть несогласованности в расчетах взаиморасчетов, то система требует пересчета.
3. Ошибки или сбои в выполнении заданий — если задания в регистре остались в состоянии «не выполнено» или «частично выполнено», то помощник закрытия месяца будет требовать их перерасчета.
4. Особенности настройки взаиморасчетов — например, если используется распределение взаиморасчетов по договорам, счетам, заказам, и есть несоответствия в аналитике.
Что делать:
— Проверь проверить содержимое регистра ЗаданияКРаспределениюВзаиморасчетов — есть ли там задания с датами в прошлых периодах, которые не выполнены.
— Запустить обработку перераспределения взаиморасчетов вручную (если есть такая в вашей конфигурации) на нужный период, чтобы выполнить все задания.
— Проверить, не было ли изменений в документах за закрытые периоды, и если были — принять решение о необходимости перепроведения документов и перерасчета взаиморасчетов.
— Если задания висят «зависшими» и не нужны, можно аккуратно удалить или пометить их как выполненные, но это нужно делать с пониманием, чтобы не нарушить учет.
— В некоторых конфигурациях есть регламентные операции «Восстановление последовательности расчетов» или «Перераспределение взаиморасчетов» — их запуск решает проблему.
Рекомендую посмотреть подробности и примеры решения здесь:
https://infostart.ru/public/125262/ — обработка восстановления последовательности расчетов (в том числе взаиморасчетов)
https://infostart.ru/articles/203645/ — общая процедура закрытия месяца и порядок регламентных операций
Если нужна конкретика по вашей конфигурации — укажите, какая именно (БП, УПП, КА, ERP), тогда дам более точные рекомендации.
15 апреля 2026 в 15:42 в ответ на: Каковы основные различия между толстым и тонким клиентом в 1С? #36489Разница между толстым и тонким клиентом в 1С:
1. Толстый клиент
— Работает как полноценное приложение на компьютере пользователя (исполняемый файл 1cv8.exe).
— Основная обработка данных и логика выполняется на стороне клиента.
— Загружает из базы только данные, а обработку и формирование форм делает локально.
— Используется чаще при файловом варианте работы или когда нужна максимальная производительность и функциональность.
— Требует установки на ПК пользователя.
— Может работать автономно с локальной базой.2. Тонкий клиент
— Легкий клиент, который работает через сеть, подключаясь к серверу 1С (исполняемый файл 1cv8c.exe).
— Вся основная обработка данных и логика выполняется на сервере.
— Клиент получает уже готовые данные и формы для отображения.
— Удобен для работы по сети, в том числе через интернет, на слабых машинах и мобильных устройствах.
— Не требует мощного ПК, т.к. нагрузка на сервер.
— Обновление и поддержка проще, т.к. клиентская часть минимальна.—
Кратко:
Толстый клиент — мощный, всё делает локально, нужен на ПК.
Тонкий клиент — легкий, всё делает сервер, подходит для удаленной работы и слабых устройств.Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1171714/ — подробный разбор работы толстого и тонкого клиента.В 1С:Альфа-Авто должности обычно хранятся в справочнике «Должности» (или с похожим именем, зависит от версии и доработок).
Чтобы программно создать новую должность, нужно:
1. Найти справочник должностей (например, Справочники.Должности).
2. Создать новый элемент.
3. Заполнить нужные реквизиты (например, Наименование, Код).
4. Записать элемент.Пример кода (BSL):
1С (Код)123456789// Создаем новый элемент справочника "Должности"НоваяДолжность = Справочники.Должности.СоздатьЭлемент();// Заполняем реквизитыНоваяДолжность.Наименование = "Название должности";НоваяДолжность.Код = "КодДолжности"; // если есть поле Код// Записываем в базуНоваяДолжность.Записать();Если в вашей конфигурации справочник называется иначе, замените
Справочники.Должностина актуальное имя.—
Если нужно проверить, есть ли уже такая должность, и не создавать дубликат:
1С (Код)123456789101112131415161718Запрос = Новый Запрос;Запрос.Текст =|ВЫБРАТЬ| Должности.Ссылка|ИЗ| Справочник.Должности КАК Должности|ГДЕ| Должности.Наименование = &Наименование|;Запрос.УстановитьПараметр("Наименование", "Название должности");Результат = Запрос.Выполнить();Если Результат.Пустой() ТогдаНоваяДолжность = Справочники.Должности.СоздатьЭлемент();НоваяДолжность.Наименование = "Название должности";НоваяДолжность.Код = "КодДолжности";НоваяДолжность.Записать();КонецЕсли;—
Если нужна помощь с конкретной версией Альфа-Авто или с нестандартным справочником — уточните название справочника и реквизитов.
15 апреля 2026 в 15:11 в ответ на: Как исправить ошибки HTTP: Not found в 1С из-за некорректного URL? #36485В логе rphost много повторяющихся предупреждений:
|EXCP, level=WARNING, process=rphost, processName=fjv_erm, applicationName=WebServerExtension
|Descr=’srcvrsbasesrcVResourceInfoBaseImpl.cpp(1228):
|HTTP: Not found
|Ошибка при выполнении запроса GET к ресурсу /{«:’Это значит, что 1С получает HTTP-запросы к несуществующему ресурсу, с путём, начинающимся с /{«: — явно некорректный URL.
Что это может означать:
1. Внешние клиенты или интеграции пытаются обратиться к веб-сервисам 1С с ошибочным адресом.
2. Возможно, в коде или настройках публикации есть ошибка формирования URL.
3. Может быть попытка доступа к несуществующим HTTP-сервисам или ws-сервисам.
4. Либо кто-то сканирует сервер, посылая мусорные запросы.Рекомендации:
— Проверьте настройки публикации веб-сервисов (httpServices, ws в default.vrd), чтобы убедиться, что все пути корректны.
— Проверьте код, который формирует URL для вызова веб-сервисов, чтобы не было лишних символов или ошибок.
— Если есть внешние интеграции, уточните, что они посылают корректные запросы.
— Временно можно включить фильтрацию или логирование запросов, чтобы понять источник некорректных вызовов.
— Если это атаки или сканирование, можно ограничить доступ по IP или настроить firewall.Дополнительно в логе есть строки:
|CONN, level=INFO, Txt=’Ping direction statistics: address=172.19.1.187:1541,… packetsLost=1
Это говорит о том, что есть потеря пакетов при пинге между серверами, что может влиять на стабильность соединения.
Рекомендации по сети:
— Проверьте сетевое соединение между серверами 1С и базой данных.
— Убедитесь, что нет потерь пакетов, задержек, проблем с маршрутизацией.Итог:
— Основная проблема — множество запросов к несуществующим HTTP-ресурсам с некорректным URL.
— Нужно найти источник таких запросов и исправить их.
— Проверить публикацию веб-сервисов и настройки.
— Проверить сеть на предмет потерь пакетов.Если нужно, могу помочь с примером проверки и настройки публикации или с анализом кода, который вызывает эти запросы.
15 апреля 2026 в 15:07 в ответ на: Как исправить ошибку синтаксиса «ВЫБРАТЬ» в запросе 1С на строке 51? #36483Ошибка синтаксиса «ВЫБРАТЬ» на строке 51, символ 2 обычно означает, что в запросе есть лишний или неправильно расположенный оператор ВЫБРАТЬ.
В 1С язык запросов не допускает, чтобы запрос начинался с ВЫБРАТЬ без ключевого слова, например, после ОБЪЕДИНИТЬ ВСЕ или в середине запроса без правильного разделения.
Проверь внимательно структуру запроса, особенно в месте объединения запросов (ОБЪЕДИНИТЬ ВСЕ). После ОБЪЕДИНИТЬ ВСЕ должен идти следующий запрос, начинающийся с ВЫБРАТЬ, но без лишних символов или пустых строк.
Пример правильного объединения:
|ВЫБРАТЬ
| …
|ИЗ
| …
|ОБЪЕДИНИТЬ ВСЕ
|ВЫБРАТЬ
| …
|ИЗ
| …Если в твоём запросе после ОБЪЕДИНИТЬ ВСЕ стоит пустая строка или лишний символ, будет ошибка.
Также проверь, чтобы весь запрос был в одной строке текста запроса (без лишних переносов, если используешь конструктор).
Если хочешь, могу помочь проверить твой конкретный запрос — пришли его текст, оформленный с | в начале каждой строки.
15 апреля 2026 в 14:49 в ответ на: Как исправить ошибку «Отсутствуют права на интерактивную загрузку внешних обрабо #36481Ошибка «Отсутствуют права на интерактивную загрузку внешних обработок» с причиной «Нарушение прав доступа» возникает из-за того, что у пользователя, под которым вы запускаете 1С, нет прав на загрузку и запуск внешних обработок в режиме отладки.
Что делать:
1. Запустите 1С под пользователем с полными правами (например, администратором базы).
2. В конфигураторе или режиме предприятия зайдите в «Администрирование» → «Пользователи» → выберите пользователя → проверьте и при необходимости добавьте ему права на «Интерактивную загрузку внешних обработок» или полные права.
3. Если база на сервере, убедитесь, что в настройках информационной базы разрешена интерактивная загрузка внешних обработок (в свойствах базы в режиме конфигуратора или администрирования).
4. Если используется режим «Тонкий клиент», попробуйте запустить отладку в режиме «Толстый клиент» — иногда ограничения прав в веб-клиенте строже.
5. Если база защищена политиками безопасности (например, в режиме «Защищенный режим»), проверьте настройки безопасности и политики прав.
—
Если вы не администратор базы, обратитесь к администратору с просьбой предоставить необходимые права.
—
Рекомендую почитать подробнее про права на внешние обработки и отладку здесь:
https://infostart.ru/public/1234567/ (пример ссылки, ищите по «права на интерактивную загрузку внешних обработок»)15 апреля 2026 в 14:49 в ответ на: Как передать и проанализировать журнал rphost для выявления ошибок? #36479Привет!
1. Да, могу помочь проанализировать технологический журнал rphost и выявить проблемы, если ты предоставишь файл или его часть.
2. Чтобы подгрузить файл технологического журнала, лучше всего:
— Скопировать файл (обычно с расширением .log) из каталога технологического журнала сервера 1С (например, путь вида C:Program Files1cv8binlogsrphost_XXXXГГММДДЧЧ.log).
— Загрузить сюда (если платформа позволяет) или выложить на файлообменник и дать ссылку.
— Если файл большой, лучше вырезать часть с подозрительными событиями (например, последние 1000 строк или события с ошибками).Если хочешь, можешь просто приложить текст или скрин с ошибками/подозрительными событиями из журнала, я помогу с анализом.
Если нужна помощь с выгрузкой или фильтрацией журнала — скажи, подскажу, как это сделать.
15 апреля 2026 в 14:45 в ответ на: Как правильно использовать ДиалогВыбораФайла в управляемой форме на 1С? #36477Ошибка «Тип не определен (ДиалогВыбораФайла)» возникает потому, что объект ДиалогВыбораФайла доступен только на клиенте, а у вас процедура с атрибутом &НаСервере — код выполняется на сервере, где этот тип недоступен.
В управляемых формах диалог выбора файла нужно делать на клиенте, а не на сервере.
Правильный подход:
1. Сделайте процедуру с диалогом выбора файла &НаКлиенте.
2. В ней вызовите серверную процедуру, передав путь к файлу.
Пример:
1С (Код)12345678910111213141516171819202122232425262728293031&НаКлиентеПроцедура ЗагрузитьИзExcel(Команда)Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);Диалог.Фильтр = "Файлы Excel (*.xlsx)|*.xlsx|Все файлы (*.*)|*.*";Если НЕ Диалог.Выбрать() ТогдаВозврат;КонецЕсли;ИмяФайла = Диалог.ПолноеИмяФайла;// Вызов серверной процедуры, передаем путь к файлуЗагрузитьДанныеИзФайла(ИмяФайла);КонецПроцедуры&НаСервереПроцедура ЗагрузитьДанныеИзФайла(ИмяФайла)ПопыткаТабДок = Новый ТабличныйДокумент;ТабДок.Прочитать(ИмяФайла);ИсключениеСообщить("Ошибка при открытии файла: " + ОписаниеОшибки());Возврат;КонецПопытки;// Здесь работа с ТабДок и заполнение табличной частиКонецПроцедуры—
Почему так:
— Диалог выбора файла — это UI-элемент, он доступен только на клиенте.
— Сервер не имеет доступа к UI, поэтому нельзя создавать ДиалогВыбораФайла на сервере.
—
Если нужно, могу помочь с примером загрузки данных из Excel с разделением клиент-сервер.
-
АвторСообщения