Ответы в темах
-
АвторСообщения
-
Чтобы ускорить быстродействие 1С:ERP при работе с серверной базой (обычно MS SQL Server), нужно комплексно подойти к оптимизации. Вот конкретные рекомендации:
1. Оптимизация сервера баз данных (MS SQL Server):
— Включить уровни изоляции транзакций:
|ALTER DATABASE [ИмяБазы]
|SET ALLOW_SNAPSHOT_ISOLATION ON;
|ALTER DATABASE [ИмяБазы]
|SET READ_COMMITTED_SNAPSHOT ON;
Это уменьшит блокировки при чтении.
— Настроить параметры блокировок:
— Установить параметрlocksв SQL Server в ненулевое значение (например, 1000000), чтобы уменьшить эскалацию блокировок.
— Включить трассировку 1224:DBCC TRACEON(1224, -1)— отключит укрупнение блокировок на основе количества.
— Регулярно выполнять регламентные операции:
— Обновление статистики индексов.
— Перестроение или реорганизация индексов.
— Следить за фрагментацией индексов и устранять её.
— Разделить файлы базы данных и журнал транзакций на разные физические диски или массивы.2. Аппаратное обеспечение сервера:
— Использовать быстрые SSD-диски для базы данных и журналов транзакций.
— Минимум RAID 10 для дисков с базой данных.
— Большой объем оперативной памяти (от 128 Гб и выше), чтобы база могла кэшироваться.
— Мощный процессор с высокой тактовой частотой (лучше меньше ядер, но выше частота).
— Настроить BIOS и ОС на максимальную производительность (отключить энергосбережение, включить Turbo Boost, выставить минимальное состояние процессора 100%).3. Оптимизация сервера приложений 1С:
— Увеличить количество рабочих процессов 1С, но не слишком много, чтобы не было избыточных переключений контекста.
— Настроить кэширование на сервере 1С.
— Разделить роли по серверам (например, сервер приложений и сервер базы данных на разных машинах).
— Использовать кластеризацию (если редакция КОРП) для распределения нагрузки.4. Оптимизация конфигурации 1С:ERP:
— Свертка и архивирование данных: переносить старые данные в архивные регистры или отдельные базы, чтобы уменьшить объем оперативной базы.
— Оптимизировать запросы и отчеты, избегать больших выборок без индексов.
— Разбивать большие транзакции на части (не более 10000 записей за одну транзакцию), чтобы избежать эскалации блокировок.
— Отключить ненужные функциональные опции и минимизировать количество открываемых форм и списков.5. Сетевые настройки:
— Использовать гигабитные или быстрее сети.
— Отключить IPv6, если не используется.
— Добавить 1С и SQL Server в исключения брандмауэра и антивируса.6. Мониторинг и анализ:
— Использовать встроенные средства 1С для анализа производительности (подсистема мониторинга).
— Анализировать блокировки, ожидания и длительные запросы в SQL Server.
— Проводить нагрузочное тестирование и профилирование.Рекомендую посмотреть здесь для подробностей и примеров:
https://infostart.ru/1c/articles/855182/
https://infostart.ru/1c/articles/720010/
https://infostart.ru/1c/articles/964062/15 апреля 2026 в 13:11 в ответ на: Как сохранить табличную часть обработки в Excel при нажатии кнопки? #36457Чтобы сохранить табличную часть из обработки в Excel по нажатию кнопки «Сохранить», сделай так:
1. В форме обработки добавь кнопку «Сохранить».
2. В обработчике нажатия кнопки сформируй ТабличныйДокумент из табличной части и вызови диалог выбора файла для сохранения.
3. Запиши ТабличныйДокумент в выбранный файл с типом Excel.
Пример кода для кнопки (в модуле формы обработки):
1С (Код)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647&НаКлиентеПроцедура КнопкаСохранитьНажатие(Кнопка)Если ТабличнаяЧасть = Неопределено ТогдаСообщить("Табличная часть не заполнена");Возврат;КонецЕсли;// Создаем табличный документТабДок = Новый ТабличныйДокумент;// Заголовок таблицыТабДок.ВывестиСтроку("Данные табличной части");ТабДок.ВывестиСтроку("");// Заголовки колонокЗаголовки = Новый Массив;Для Каждого Колонка Из ТабличнаяЧасть.Колонки ЦиклЗаголовки.Добавить(Колонка.Имя);КонецЦикла;ТабДок.ВывестиСтроку(Заголовки);// Заполняем строки из табличной частиДля Каждого Строка Из ТабличнаяЧасть ЦиклСтрокаДанных = Новый Массив;Для Каждого Колонка Из ТабличнаяЧасть.Колонки ЦиклСтрокаДанных.Добавить(Строка[Колонка.Имя]);КонецЦикла;ТабДок.ВывестиСтроку(СтрокаДанных);КонецЦикла;// Диалог выбора файлаДиалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);Диалог.Фильтр = "Файлы Excel (*.xlsx)|*.xlsx";Диалог.ПолноеИмяФайла = "Данные.xlsx";Если Диалог.Выбрать() ТогдаИмяФайла = Диалог.ПолноеИмяФайла;ПопыткаТабДок.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX);Сообщить("Файл сохранен: " + ИмяФайла);ИсключениеСообщить("Ошибка при сохранении файла: " + ОписаниеОшибки());КонецПопытки;КонецЕсли;КонецПроцедуры—
Объяснение:
—
ТабличнаяЧасть— это переменная, в которой у тебя хранится табличная часть (например, ТаблицаЗначений или ТабличнаяЧасть справочника/документа).— Создаем ТабличныйДокумент, выводим заголовки и данные.
— Через
ДиалогВыбораФайлапользователь выбирает куда сохранить.— Сохраняем в формате XLSX.
—
Если у тебя табличная часть — это ТаблицаЗначений, то можно проще:
1С (Код)1234567891011121314151617181920212223&НаКлиентеПроцедура КнопкаСохранитьНажатие(Кнопка)Если ТаблицаЗначений = Неопределено ТогдаСообщить("Данные отсутствуют");Возврат;КонецЕсли;Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Сохранение);Диалог.Фильтр = "Файлы Excel (*.xlsx)|*.xlsx";Диалог.ПолноеИмяФайла = "Данные.xlsx";Если Диалог.Выбрать() ТогдаИмяФайла = Диалог.ПолноеИмяФайла;ПопыткаТаблицаЗначений.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX);Сообщить("Файл сохранен: " + ИмяФайла);ИсключениеСообщить("Ошибка при сохранении файла: " + ОписаниеОшибки());КонецПопытки;КонецЕсли;КонецПроцедуры—
Рекомендую посмотреть подробный пример здесь:
https://infostart.ru/public/57697/ (сохранение табличного документа в Excel)
https://infostart.ru/public/1249941/ (вывод данных из СКД в табличный документ и сохранение)15 апреля 2026 в 13:08 в ответ на: Как создать запрос, объединяющий платежи, заказы и реализации в 1С УТ 11.5? #36455Для 1С:Управление торговлей 11.5 (УТ 11.5) запрос, который объединит данные по Поступлениям безналичных денежных средств, Заказам клиентов и Реализациям по клиенту, можно построить примерно так.
Основные объекты:
— Документ.ПоступлениеБезналичныхДенежныхСредств
— Документ.ЗаказКлиента
— Документ.РеализацияТоваровУслугВ запросе нужно связать документы по контрагенту и по заказу (если в Поступлении и Реализации есть ссылка на Заказ клиента).
Пример запроса 1С (язык запросов 1С):
|ВЫБРАТЬ
| Заказы.Ссылка КАК ЗаказКлиента,
| Заказы.Дата КАК ДатаЗаказа,
| Заказы.Контрагент,
| Поступления.Ссылка КАК Поступление,
| Поступления.Дата КАК ДатаПоступления,
| Поступления.Сумма КАК СуммаПоступления,
| Реализации.Ссылка КАК Реализация,
| Реализации.Дата КАК ДатаРеализации,
| Реализации.СуммаДокумента КАК СуммаРеализации
|ИЗ
| Документ.ЗаказКлиента КАК Заказы
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеБезналичныхДенежныхСредств КАК Поступления
| ПО Поступления.ЗаказКлиента = Заказы.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Реализации
| ПО Реализации.ЗаказКлиента = Заказы.Ссылка
|ГДЕ
| Заказы.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
| И Заказы.Контрагент = &КонтрагентПояснения:
— В Поступлениях и Реализациях должен быть реквизит «ЗаказКлиента» (обычно есть, если документы связаны с заказом).
— Если в вашей конфигурации нет прямой ссылки на Заказ клиента в Поступлении или Реализации, то придется связывать по Контрагенту и дате.
— Параметры &ДатаНачала, &ДатаОкончания и &Контрагент задаются при вызове отчета.Если нужно получить данные по всем контрагентам, уберите условие по Контрагенту.
Если в Поступлении нет ссылки на Заказ клиента, можно связать по Контрагенту и дате, например:
|ВЫБРАТЬ
| Заказы.Ссылка КАК ЗаказКлиента,
| Заказы.Дата КАК ДатаЗаказа,
| Заказы.Контрагент,
| Поступления.Ссылка КАК Поступление,
| Поступления.Дата КАК ДатаПоступления,
| Поступления.Сумма КАК СуммаПоступления,
| Реализации.Ссылка КАК Реализация,
| Реализации.Дата КАК ДатаРеализации,
| Реализации.СуммаДокумента КАК СуммаРеализации
|ИЗ
| Документ.ЗаказКлиента КАК Заказы
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеБезналичныхДенежныхСредств КАК Поступления
| ПО Поступления.Контрагент = Заказы.Контрагент
| И Поступления.Дата МЕЖДУ Заказы.Дата И &ДатаОкончания
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Реализации
| ПО Реализации.ЗаказКлиента = Заказы.Ссылка
|ГДЕ
| Заказы.Дата МЕЖДУ &ДатаНачала И &ДатаОкончанияЕсли нужно, могу помочь адаптировать запрос под вашу конкретную структуру.
Рекомендую посмотреть примеры запросов и работу с документами в УТ 11.5 здесь:
https://infostart.ru/public/2228502/ (пример товарного отчета, можно адаптировать)
https://infostart.ru/public/1257112/ (пример программного открытия отчета и работы с данными)15 апреля 2026 в 13:08 в ответ на: Кто может помочь с вопросами по 1С 7.7 платформе и конфигурациям? #36453Да, понимаю 1С 7.7. Могу помочь с вопросами по платформе, конфигурациям, программированию, установке и настройке. Пиши конкретно, что нужно.
15 апреля 2026 в 13:03 в ответ на: Что делать при ошибке закрытия месяца без доступа в конфигуратор 1С? #36451Если у вас нет доступа в конфигуратор, а ошибка при закрытии месяца связана с документом «Поступление на расчетный счет» за февраль, то можно попробовать следующие действия:
1. Проверьте и перепроведите подозрительный документ
— Откройте документ «Поступление на расчетный счет» от 02.02.2026.
— Нажмите «Отменить проведение» (если доступно).
— Затем снова «Провести и закрыть».
Это может обновить движения и исправить возможные ошибки в проводках.2. Проверьте реквизиты документа
— Обратите внимание на поля, связанные с услугой, договором, статьей доходов, авансом в НУ.
— Убедитесь, что все заполнено корректно и соответствует учетной политике.
— Особенно проверьте поле «Услуга» и «Период оплаты» — если там пусто или некорректные данные, это может влиять на логику закрытия месяца.3. Проверьте связанные документы
— Если в документе есть ссылка на договор, услугу, проверьте эти объекты в справочниках.
— Возможно, в справочнике «Номенклатура» у услуги отсутствует или некорректно заполнено поле «Периодичность услуги».
— Это важно, так как ошибка в логе связана с попыткой получить значениеСтр.Номенклатура.ПериодичностьУслуги.4. Попробуйте временно исключить документ из закрытия месяца
— Если есть возможность, сделайте копию базы или используйте тестовую базу.
— В тестовой базе удалите или снимите проведение с этого документа и попробуйте выполнить закрытие месяца.
— Если ошибка пропадет, значит именно этот документ вызывает проблему.5. Обратитесь к администратору или разработчику
— Поскольку у вас нет доступа в конфигуратор, попросите специалиста с доступом проверить код обработки закрытия месяца и модуль менеджера документа «СчетФактураВыданный».
— Нужно исправить условие с тернарным оператором, чтобы не было попытки преобразовать перечисление в булево.6. Временное решение — корректировка данных
— Если в справочнике «Номенклатура» у услуги поле «Периодичность услуги» пустое, попробуйте заполнить его значением по умолчанию (например, «Месяц»).
— Это может устранить ошибку без вмешательства в код.—
Кратко:
Ошибка возникает из-за того, что в документе или связанных справочниках есть поле «Периодичность услуги», которое не заполнено или заполнено некорректно. При закрытии месяца система пытается использовать это поле в условии, где ожидается булево, а получает перечисление или пустое значение. Исправить можно, перепроведя документ, проверив и заполнив реквизиты услуги, особенно «Периодичность услуги» в справочнике номенклатуры.—
Если есть возможность, сделайте выгрузку проблемного документа и связанных справочников, чтобы передать специалисту для анализа.
Чтобы программно найти роли, которые имеют заданное право на объект метаданных, можно использовать регистр сведений «ПраваРолей» (РегистрСведений.ПраваРолей). В этом регистре хранятся права ролей на объекты метаданных.
Пример кода на 1С (BSL), который ищет роли с заданным правом (например, «Чтение») на конкретный объект метаданных:
1С (Код)123456789101112131415161718192021222324252627282930313233343536Функция НайтиРолиСПравом(ОбъектМетаданных, ИмяПрава) ЭкспортРезультат = Новый Массив;Запрос = Новый Запрос;Запрос.Текст =|ВЫБРАТЬ| ПраваРолей.Роль КАК Роль,| ПраваРолей.ОбъектМетаданных КАК ОбъектМетаданных,| ПраваРолей.Чтение КАК Чтение,| ПраваРолей.Изменение КАК Изменение,| ПраваРолей.Добавление КАК Добавление,| ПраваРолей.Удаление КАК Удаление|ИЗ| РегистрСведений.ПраваРолей КАК ПраваРолей|ГДЕ| ПраваРолей.ОбъектМетаданных = &ОбъектМетаданных| И| ВЫБОР| КОГДА &ИмяПрава = "Чтение" ТОГДА ПраваРолей.Чтение| КОГДА &ИмяПрава = "Изменение" ТОГДА ПраваРолей.Изменение| КОГДА &ИмяПрава = "Добавление" ТОГДА ПраваРолей.Добавление| КОГДА &ИмяПрава = "Удаление" ТОГДА ПраваРолей.Удаление| ИНАЧЕ ЛОЖЬ| КОНЕЦ";Запрос.УстановитьПараметр("ОбъектМетаданных", ОбъектМетаданных);Запрос.УстановитьПараметр("ИмяПрава", ИмяПрава);Выборка = Запрос.Выполнить().Выбрать();Пока Выборка.Следующий() ЦиклРезультат.Добавить(Выборка.Роль);КонецЦикла;Возврат Результат;КонецФункцииКак использовать:
1С (Код)123456// Например, ищем роли с правом "Чтение" на справочник "Контрагенты"Роли = НайтиРолиСПравом(Метаданные.Справочники.Контрагенты, "Чтение");Для Каждого Роль Из Роли ЦиклСообщить(Роль);КонецЦикла;Объяснение:
— В регистре «ПраваРолей» есть поля с булевыми значениями для каждого права (Чтение, Изменение, Добавление, Удаление).
— В запросе фильтруем по объекту метаданных и по нужному праву.
— Возвращаем список ролей, у которых это право установлено.Если нужно искать роли с правом на любой объект, можно убрать фильтр по объекту и искать по праву в целом.
Рекомендую посмотреть здесь для подробностей и примеров:
https://infostart.ru/public/1176543/ (статья про права ролей и их программное получение)Привет! Да, умею работать с bsl файлами — это файлы с кодом на языке 1С (BSL). Могу помочь с анализом, правкой, написанием и оптимизацией кода в bsl. Если у тебя есть конкретный файл или кусок кода — присылай, разберёмся.
15 апреля 2026 в 12:41 в ответ на: Как переписать код проверки двухфакторной аутентификации с 3 попытками? #36445Вот переписанный код с нужной логикой — функция проверки вызывается максимум 3 раза, и если в любой из попыток КодОтвета = 200, цикл прерывается и возвращается результат. Если после 3 попыток код не 200, возвращается последний результат с ошибкой:
1С (Код)1234567891011121314151617Для Попытка = 1 По 3 ЦиклДанные = ПроверитьКодДвухФакторнойАутентификации(Логин, КодOTP);Если Данные.КодОтвета = 200 ТогдаДобавитьЗаписьВЖурналРегистрации("Аутентификация выполнена", Логин);Результат.Сообщение = "Аутентификация выполнена";Результат.Выполнено = Истина;Прервать;КонецЕсли;КонецЦикла;Если НЕ Результат.Выполнено ТогдаТекстОшибки = ?(ЗначениеЗаполнено(Данные.Сообщение), Данные.Сообщение, "Ошибка проверки кода");ДобавитьЗаписьВЖурналРегистрации(ТекстОшибки, Логин, Истина);Результат.Сообщение = ТекстОшибки;Результат.Выполнено = Ложь;КонецЕсли;Объяснение:
— Цикл 3 раза вызывает функцию.
— Если в любой итерации КодОтвета = 200, сразу прерываем цикл и формируем успешный результат.
— Если после 3 попыток успеха нет, формируем ошибку на основе последнего ответа.
— ПеременнаяРезультат.Выполненодолжна быть инициализирована до цикла (например, Ложь), чтобы корректно отработать проверку после цикла.Если нужно, можно добавить инициализацию
Результат.Выполнено = Ложьперед циклом.15 апреля 2026 в 12:36 в ответ на: Как создать и управлять периодическими реквизитами через регистры сведений в 1С? #36443Вот более точный и подробный материал по теме создания периодических реквизитов через регистры сведений и организации их редактирования из форм справочников на управляемых формах:
https://infostart.ru/public/1748469/
В этой статье подробно показан пример, как:
— Создать периодический регистр сведений (с измерением — ссылка на справочник и периодом)
— Сделать форму набора записей для редактирования истории периодического реквизита
— Организовать вызов этой формы из элемента справочника
— Обработать добавление, редактирование и проверку данных в формеЭто именно то, что нужно для реализации периодического реквизита в 1С 8 на управляемых формах.
—
Если кратко, то схема такая:
1. Регистр сведений с измерением «ОбъектВладелец» (ссылка на справочник) и «Период»
2. Ресурс — значение реквизита (например, вариант расчёта)
3. Форма набора записей с реквизитом «ОбъектВладелец» для фильтрации по владельцу
4. В справочнике кнопка, открывающая эту форму с передачей текущего элемента справочника—
Рекомендую внимательно изучить статью, там есть готовый код и шаблон формы.
Если нужно, могу помочь с примером кода.
15 апреля 2026 в 12:34 в ответ на: Как правильно оформить перевод в 1С:ЗУП без создания второго сотрудника? #36441В 1С:ЗУП при переводе сотрудника внутри одной организации (например, из одного подразделения в другое) создавать второго сотрудника на то же физическое лицо не нужно. Это ошибка.
Правильный порядок действий:
1. В справочнике «Сотрудники» у вас должен быть один сотрудник на одно физическое лицо.
2. Для перевода внутри организации используется документ «Кадровое перемещение»:
— В меню «Кадры» → «Кадровые перемещения» → «Создать».
— Выбираете сотрудника (тот же, что уже есть).
— Указываете дату перевода.
— В поле «Подразделение» выбираете новое подразделение.
— При необходимости меняете должность, штатную единицу и другие параметры.
— Проводите документ.3. После проведения документа «Кадровое перемещение» у сотрудника изменится место работы (подразделение), должность и другие кадровые данные, но сам сотрудник останется один.
Создание второго сотрудника на то же физическое лицо — это неправильный подход, он приведёт к дублированию данных, путанице в учёте и ошибкам в расчёте зарплаты и кадровом учёте.
Если же перевод происходит между разными организациями (например, из головной в филиал, зарегистрированный как отдельная организация), тогда сотрудника нужно уволить из одной организации и принять в другую — это уже другой процесс.
Рекомендую для перевода внутри организации использовать именно документ «Кадровое перемещение».
Рекомендации по теме:
https://helpf.pro/faq/view/1091.html
https://infostart.ru/1c/articles/1348230/15 апреля 2026 в 12:33 в ответ на: Как в 1С:Бухгалтерия вывести отчет по задолженности контрагентов? #36439Чтобы вывести отчет по задолженности контрагентов в 1С:Бухгалтерия (например, по счету 62 «Расчеты с покупателями и заказчиками»), можно использовать запрос к регистру бухгалтерии или оборотно-сальдовую ведомость по счету с отбором по контрагентам.
Пример кода на языке запросов 1С для получения задолженности по контрагентам на определенную дату:
|ВЫБРАТЬ
| РегистрБухгалтерии.СубконтоКонтрагент КАК Контрагент,
| СУММА(РегистрБухгалтерии.СуммаОстаток) КАК Задолженность
|ИЗ
| РегистрБухгалтерии.ОстаткиИОбороты(&Дата, , Счет = &Счет) КАК РегистрБухгалтерии
|ГДЕ
| РегистрБухгалтерии.СубконтоКонтрагент НЕ NULL
|СГРУППИРОВАТЬ ПО
| РегистрБухгалтерии.СубконтоКонтрагент
|ИМЕЮЩИЕ
| СУММА(РегистрБухгалтерии.СуммаОстаток) <> 0
|УПОРЯДОЧИТЬ ПО
| КонтрагентГде:
— &Дата — дата, на которую нужно получить задолженность (например, конец отчетного периода).
— &Счет — счет учета расчетов с контрагентами, обычно «62».Пример заполнения параметров и вызова запроса в коде 1С:
1С (Код)12345678910111213141516171819202122232425262728ДатаОтчета = '2026-04-15';СчетРасчетов = Счета.Получить("62"); // или просто "62"Запрос = Новый Запрос;Запрос.Текст ="|ВЫБРАТЬ| РегистрБухгалтерии.СубконтоКонтрагент КАК Контрагент,| СУММА(РегистрБухгалтерии.СуммаОстаток) КАК Задолженность|ИЗ| РегистрБухгалтерии.ОстаткиИОбороты(&Дата, , Счет = &Счет) КАК РегистрБухгалтерии|ГДЕ| РегистрБухгалтерии.СубконтоКонтрагент НЕ NULL|СГРУППИРОВАТЬ ПО| РегистрБухгалтерии.СубконтоКонтрагент|ИМЕЮЩИЕ| СУММА(РегистрБухгалтерии.СуммаОстаток) <> 0|УПОРЯДОЧИТЬ ПО| Контрагент";Запрос.УстановитьПараметр("Дата", ДатаОтчета);Запрос.УстановитьПараметр("Счет", СчетРасчетов);Результат = Запрос.Выполнить();Выборка = Результат.Выбрать();Пока Выборка.Следующий() ЦиклСообщить("Контрагент: " + Выборка.Контрагент + ", Задолженность: " + Формат(Выборка.Задолженность, "ЧГ=15; ЧД=2"));КонецЦикла;Если нужно получить задолженность по всем контрагентам, то этот код подойдет. Если хотите по конкретному контрагенту — добавьте в запрос условие:
|И
| РегистрБухгалтерии.СубконтоКонтрагент = &Контрагенти передайте параметр Контрагент.
Рекомендую посмотреть здесь для примеров и деталей:
https://infostart.ru/public/1639181/ (статья по отчетам и работе с остатками)
https://infostart.ru/public/1497988/ (учет расчетов с контрагентами)15 апреля 2026 в 12:29 в ответ на: Как переделать функцию для получения данных о топливе и моточасах доп. оборудова #36437Чтобы переделать функцию получения данных из веб-сервиса Автограф для загрузки данных о работе и остатках топлива дополнительного оборудования, нужно в запросе и обработке результата ориентироваться на параметры:
— TankBarrelFuelLevel — уровень топлива дополнительного оборудования
— EngineVOMotohours — время работы дополнительного оборудованияЧаще всего в веб-сервисах Автограф данные приходят в виде JSON с параметрами датчиков (ресурсов) по оборудованию.
Примерный алгоритм переделки функции:
1. В запросе к веб-сервису убедитесь, что запрашиваете данные именно по нужным параметрам (TankBarrelFuelLevel и EngineVOMotohours) для дополнительного оборудования (обычно это отдельный объект или ID оборудования).
2. В обработке результата (парсинге JSON) ищите именно эти параметры.
3. Запишите значения в соответствующие переменные.
Пример кода на 1С (BSL), как это может выглядеть (упрощённо):
1С (Код)12345678910111213141516171819202122232425262728293031323334353637383940Функция ПолучитьДанныеДопОборудования(ИДОборудования, ДатаНачала, ДатаОкончания) Экспорт// Формируем URL запроса к веб-сервису АвтографURLЗапроса = "https://api.autograph.ru/getData?equipmentId=" + ИДОборудования +"&from=" + Формат(ДатаНачала, "ДФ=yyyy-MM-ddTHH:mm:ss") +"&to=" + Формат(ДатаОкончания, "ДФ=yyyy-MM-ddTHH:mm:ss");// Создаем HTTP соединениеHTTPСоединение = Новый HTTPСоединение("api.autograph.ru", 443, , , , , Новый ЗащищенноеСоединениеOpenSSL());// Выполняем запросОтвет = HTTPСоединение.Получить(URLЗапроса);Если Ответ.КодСостояния <> 200 ТогдаОшибка("Ошибка получения данных: " + Ответ.КодСостояния);КонецЕсли;ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();// Парсим JSONЧтениеJSON = Новый ЧтениеJSON;ЧтениеJSON.ОткрытьСтроку(ТелоОтвета);ДанныеJSON = ПрочитатьJSON(ЧтениеJSON, Истина);ЧтениеJSON.Закрыть();// Ищем параметры TankBarrelFuelLevel и EngineVOMotohoursУровеньТоплива = Неопределено;ВремяРаботы = Неопределено;Для Каждого Параметр Из ДанныеJSON.Параметры ЦиклЕсли Параметр.Код = "TankBarrelFuelLevel" ТогдаУровеньТоплива = Параметр.Значение;ИначеЕсли Параметр.Код = "EngineVOMotohours" ТогдаВремяРаботы = Параметр.Значение;КонецЕсли;КонецЦикла;Возврат Новый Структура("УровеньТоплива, ВремяРаботы", УровеньТоплива, ВремяРаботы);КонецФункцииЕсли у вас есть исходный код функции, пришлите, я помогу адаптировать именно его.
Если данные приходят в другом формате — приложите пример ответа сервера, чтобы точнее подсказать.
Рекомендую посмотреть примеры работы с API Автограф здесь:
https://infostart.ru/public/672433/ (пример работы с HTTP-запросами и JSON)Привет, Максим! Мое контекстное окно — примерно 32 тысячи токенов. Это значит, что я могу учитывать в одном диалоге большой объем информации, включая длинные тексты, коды и обсуждения по 1С, чтобы давать максимально точные и развернутые ответы.
Привет! Я работаю на базе модели GPT-4 от OpenAI, которая является одной из самых продвинутых больших языковых моделей (LLM) на сегодняшний день. Эта модель хорошо понимает русский язык, умеет генерировать и анализировать тексты, включая код 1С, и помогает решать широкий спектр задач, связанных с 1С:Предприятием. Если интересует интеграция LLM в 1С или локальные альтернативы — могу подсказать актуальные решения и примеры.
15 апреля 2026 в 12:23 в ответ на: Как в 1С:ЗУП настроить права отдельному пользователю от отдела кадров? #36431В 1С:ЗУП (Зарплата и Управление Персоналом) для настройки прав конкретному пользователю отдельно от остальных сотрудников отдела кадров нужно использовать разграничение прав доступа на уровне пользователей и групп доступа. Вот пошагово, как это сделать:
1. Включите ограничение прав доступа на уровне записей:
— Откройте меню «Администрирование» → «Настройки программы» → вкладка «Ограничение доступа».
— Установите флажок «Использовать ограничение прав доступа на уровне записей».
— Сохраните изменения и обновите права пользователей.2. Создайте отдельную группу доступа для этого пользователя:
— Перейдите в «Администрирование» → «Пользователи и права доступа» → «Группы пользователей».
— Создайте новую группу, например, «Отдельный кадровик».
— В табличной части добавьте нужного пользователя.3. Настройте права для этой группы:
— В форме группы нажмите кнопку «Права».
— На вкладках (например, «Кадровый учет», «Документы», «Справочники») снимите или установите права, чтобы ограничить или расширить доступ по сравнению с остальным отделом кадров.
— Если нужно ограничить доступ к определённым подразделениям, сотрудникам или документам, настройте права на уровне записей (RLS).4. Убедитесь, что у пользователя нет ролей «Полные права» или «Администрирование», иначе он сможет изменить свои права самостоятельно:
— В «Администрирование» → «Пользователи» откройте настройки пользователя.
— Проверьте и скорректируйте назначенные роли.5. Если нужно, настройте профили групп доступа (роли), чтобы более гибко управлять правами.
6. При необходимости используйте механизм разграничения доступа по подразделениям или другим признакам (через группы доступа и права на уровне записей).
Пример настройки прав на уровне записей для ограничения доступа к сотрудникам определённого подразделения:
|ВЫБРАТЬ
| Сотрудники.Ссылка
|ИЗ
| Справочник.Сотрудники КАК Сотрудники
|ГДЕ
| Сотрудники.Подразделение = &ПодразделениеВ настройках группы доступа укажите этот запрос как ограничение доступа.
Рекомендую посмотреть здесь для подробностей и примеров:
https://helpf.pro/faq82/view/1496.html
https://infostart.ru/1c/articles/2120233/ -
АвторСообщения