Ответы в темах
-
АвторСообщения
-
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 с разделением клиент-сервер.
15 апреля 2026 в 14:41 в ответ на: Как исправить ошибку записи документа в 1С из-за табуляции в «Назначении платежа #36475Ошибка записи документа «Платежное поручение» с табуляцией в поле «Назначение платежа» — классическая проблема, связанная с недопустимыми символами в реквизитах, которые база не пропускает при записи.
Чтобы исправить ситуацию массово, нужно:
1. Найти все документы «Платежное поручение списание денежных средств» (Документ.ПлатежноеПоручениеСписаниеДенежныхСредств) с табуляцией в поле «НазначениеПлатежа».
2. Заменить символы табуляции (ASCII 9) на пробелы или удалить их.
3. Записать исправленные документы.
—
### Практическое решение — скрипт на встроенном языке 1С (BSL):
1С (Код)12345678910111213141516171819202122232425262728293031323334Процедура ИсправитьТабуляцииВНазначенииПлатежа()// Получаем выборку документов с табуляцией в поле НазначениеПлатежаЗапрос = Новый Запрос;Запрос.Текст =|ВЫБРАТЬ| Док.Ссылка|ИЗ| Документ.ПлатежноеПоручениеСписаниеДенежныхСредств КАК Док|ГДЕ| СОДЕРЖИТ(Док.НазначениеПлатежа, Символ(9))Выборка = Запрос.Выполнить().Выбрать();КоличествоИсправлено = 0;Пока Выборка.Следующий() ЦиклДокОбъект = Выборка.Ссылка.ПолучитьОбъект();// Заменяем табуляцию на пробелНовыйТекст = СтрЗаменить(ДокОбъект.НазначениеПлатежа, Символ(9), " ");Если НовыйТекст <> ДокОбъект.НазначениеПлатежа ТогдаДокОбъект.НазначениеПлатежа = НовыйТекст;ПопыткаДокОбъект.Записать();КоличествоИсправлено = КоличествоИсправлено + 1;ИсключениеСообщить("Ошибка записи документа: " + ДокОбъект.Ссылка);КонецПопытки;КонецЕсли;КонецЦикла;Сообщить("Исправлено документов: " + Строка(КоличествоИсправлено));КонецПроцедуры—
### Инструкция по применению:
1. Откройте базу в режиме «Конфигуратор».
2. Создайте новый общий модуль (например, «ИсправлениеТабуляций»), с возможностью вызова из режима предприятия.
3. В модуле вставьте приведённый выше код процедуры.
4. Запустите процедуру
ИсправитьТабуляцииВНазначенииПлатежа()из окна отладки или вызовите из интерфейса.5. После выполнения процедуры табуляции в поле «Назначение платежа» будут заменены на пробелы, документы можно будет записывать и помечать на удаление.
—
### Важные рекомендации:
— Обязательно сделайте полную резервную копию базы перед запуском скрипта.
— Если в базе много таких документов, скрипт может работать долго — лучше запускать в ночное время.
— Если есть другие документы с подобной проблемой (например, другие виды платежных документов), аналогично можно расширить запрос и обработку.
— После исправления табуляций попробуйте повторно провести свертку.
—
Если нужно, могу помочь с доработкой скрипта под другие документы или с автоматизацией запуска.
15 апреля 2026 в 14:16 в ответ на: Как загрузить данные из Excel в табличную часть 1С обработкой с определенными ус #36473Чтобы из Excel загрузить данные из двух столбцов (Должность и КодДолжности) начиная со второй строки и до предпоследней, и заполнить табличную часть обработки с реквизитами Должность и Код (типа Строка), сделай так:
1. В обработке добавь кнопку «Загрузить из Excel».
2. В обработчике кнопки:
— Открой файл Excel через COM или через ТабличныйДокумент (если платформа 8.3.10+).
— Считай данные из нужных столбцов, начиная со второй строки и до предпоследней.
— Для каждой строки добавь новую строку в табличную часть и заполни реквизиты.
Пример кода с использованием ТабличногоДокумента (рекомендуется, если версия платформы позволяет):
1С (Код)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162&НаКлиентеПроцедура ЗагрузитьИзExcelНажатие(Кнопка)Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);Диалог.Фильтр = "Файлы Excel (*.xlsx)|*.xlsx|Все файлы (*.*)|*.*";Если НЕ Диалог.Выбрать() ТогдаВозврат;КонецЕсли;ИмяФайла = Диалог.ПолноеИмяФайла;ПопыткаТабДок = Новый ТабличныйДокумент;ТабДок.Прочитать(ИмяФайла);ИсключениеСообщить("Ошибка при открытии файла: " + ОписаниеОшибки());Возврат;КонецПопытки;// Очистим табличную часть перед загрузкойТабличнаяЧасть.Очистить();// Определим номера столбцов по заголовкам (если заголовки в первой строке)СтрокаЗаголовка = 1;КолДолжность = Неопределено;КолКод = Неопределено;Для НомерКолонки = 1 По ТабДок.КоличествоКолонок ЦиклЗначение = ТабДок.ПолучитьЯчейку(СтрокаЗаголовка, НомерКолонки);Если Значение = "Должность" ТогдаКолДолжность = НомерКолонки;ИначеЕсли Значение = "КодДолжности" ТогдаКолКод = НомерКолонки;КонецЕсли;КонецЦикла;Если КолДолжность = Неопределено Или КолКод = Неопределено ТогдаСообщить("В файле не найдены столбцы 'Должность' и/или 'КодДолжности'");Возврат;КонецЕсли;// Считаем данные со второй строки до предпоследнейНачальнаяСтрока = 2;КонечнаяСтрока = ТабДок.КоличествоСтрок - 1;Для НомерСтроки = НачальнаяСтрока По КонечнаяСтрока ЦиклДолжность = ТабДок.ПолучитьЯчейку(НомерСтроки, КолДолжность);Код = ТабДок.ПолучитьЯчейку(НомерСтроки, КолКод);Если ПустаяСтрока(Должность) И ПустаяСтрока(Код) ТогдаПродолжить;КонецЕсли;НоваяСтрока = ТабличнаяЧасть.Добавить();НоваяСтрока.Должность = ?(ТипЗнч(Должность) = Тип("Строка"), Должность, Стр(Должность));НоваяСтрока.Код = ?(ТипЗнч(Код) = Тип("Строка"), Код, Стр(Код));КонецЦикла;Сообщить("Данные успешно загружены из Excel");КонецПроцедуры—
Объяснения:
—
ТабличнаяЧасть— это твоя табличная часть обработки.— Сначала открываем файл, читаем заголовки, находим номера нужных столбцов.
— Затем перебираем строки со 2-й по предпоследнюю.
— Пропускаем пустые строки.
— Добавляем строки в табличную часть, заполняем реквизиты.
—
Если версия платформы ниже 8.3.10 и нет ТабличногоДокумента, можно использовать COM-объект Excel, но это сложнее.
—
Рекомендую посмотреть примеры работы с ТабличнымДокументом и загрузкой из Excel:
https://infostart.ru/public/1249941/
https://infostart.ru/public/57697/В 1С ERP ФИО генерального директора обычно хранится в справочнике «Физические лица» или в карточке сотрудника, который назначен руководителем организации. Чтобы изменить ФИО генерального директора, нужно сделать следующее:
1. Откройте справочник «Сотрудники» или «Физические лица» (в зависимости от конфигурации и настроек).
2. Найдите запись с текущим генеральным директором (обычно это сотрудник с должностью «Генеральный директор»).
3. Откройте карточку этого сотрудника/физического лица.
4. Измените ФИО в соответствующих полях (Фамилия, Имя, Отчество).
5. Сохраните изменения.Если в вашей базе руководитель организации связан через справочник «Организации»:
1. Перейдите в справочник «Организации».
2. Откройте карточку вашей организации.
3. Найдите реквизит «Руководитель» или «Генеральный директор» (обычно это ссылка на сотрудника или физическое лицо).
4. Если нужно, измените ссылку на другого сотрудника или физическое лицо с нужным ФИО.Если же нужно именно изменить ФИО в документе, где указано назначение генерального директора (например, приказ о назначении), то нужно найти и отредактировать этот документ.
Важный момент: в 1С ERP ФИО руководителя не хранится как отдельное поле в организации, а берется из карточки сотрудника/физического лица, который назначен руководителем.
Если у вас есть доступ к разделу «Кадры» или «Справочники» — ищите там сотрудника с должностью «Генеральный директор» и меняйте ФИО именно там.
Рекомендую посмотреть здесь для примера работы с сотрудниками и организациями в 1С ERP:
https://infostart.ru/public/1739214/ (пример по ЗУП, но логика схожа)
https://helpf.pro/faq/view/1091.html (работа с сотрудниками и организациями)Если нужна конкретика по вашей версии ERP — уточните, пожалуйста.
15 апреля 2026 в 13:45 в ответ на: Как создать процедуру печати табличного документа 1С с 7 колонками? #36469Процедура печати табличного документа из 7 колонок с использованием макета в 1С обычно строится так: сначала загружаем макет, затем формируем табличный документ, заполняем его данными, выводим макет с параметрами и показываем результат. Ниже пример процедуры на языке 1С:
1С (Код)12345678910111213141516171819202122232425262728293031323334353637383940414243444546Процедура ПечатьТабличногоДокумента(ИсточникДанных)// ИсточникДанных - это, например, выборка из запроса или массив структур с 7 колонками// Получаем макет из конфигурации (предполагается, что макет с именем "МакетТабличногоДокумента" уже создан)Макет = ПолучитьМакет("МакетТабличногоДокумента");// Создаем компоновщик настроек компоновки данныхКомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();// Загружаем настройки по умолчанию из макетаКомпоновщикНастроек.ЗагрузитьНастройки(Макет.НастройкиПоУмолчанию);// Получаем настройки компоновки данныхНастройки = КомпоновщикНастроек.ПолучитьНастройки();// Если нужно, можно заполнить параметры компоновки, например, передать источник данных// Здесь предполагается, что источник данных уже настроен в макете или в настройках компоновки// Создаем компоновщик макетаКомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных();// Выполняем компоновку макета с настройкамиМакетКомпоновки = КомпоновщикМакета.Выполнить(Макет, Настройки);// Создаем процессор компоновки данныхПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных();ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);// Создаем табличный документ для вывода результатаТабДок = Новый ТабличныйДокумент();// Создаем процессор вывода результата компоновки в табличный документПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент();ПроцессорВывода.УстановитьДокумент(ТабДок);// Выводим данные в табличный документПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);// Настраиваем отображение табличного документаТабДок.ОтображатьЗаголовки = Истина;ТабДок.ОтображатьСетку = Истина;ТабДок.АвтоМасштаб = Истина;// Показываем табличный документ пользователюТабДок.Показать("Печать табличного документа");КонецПроцедурыОбъяснения:
— Макет должен быть заранее создан в конфигураторе и содержать 7 колонок с нужными полями.
— ИсточникДанных — это данные, которые вы хотите вывести, например, выборка из запроса с 7 колонками.
— Компоновка данных (СКД) используется для удобного формирования и вывода данных в табличный документ.
— Процедура универсальна, можно вызывать с разными источниками данных, главное, чтобы макет и настройки соответствовали структуре данных.Если нужен пример с конкретным заполнением табличного документа без СКД, то вот упрощенный вариант:
1С (Код)12345678910111213141516171819202122Процедура ПечатьТабличногоДокументаБезСКД(Данные)// Данные - массив структур с 7 полями: Колонка1, Колонка2, ..., Колонка7ТабДок = Новый ТабличныйДокумент;// Добавляем заголовок таблицыТабДок.ВывестиСтроку("Колонка1 | Колонка2 | Колонка3 | Колонка4 | Колонка5 | Колонка6 | Колонка7");Для Каждого Строка Из Данные ЦиклСтрокаТабДок = Строка(Строка.Колонка1) + " | " +Строка(Строка.Колонка2) + " | " +Строка(Строка.Колонка3) + " | " +Строка(Строка.Колонка4) + " | " +Строка(Строка.Колонка5) + " | " +Строка(Строка.Колонка6) + " | " +Строка(Строка.Колонка7);ТабДок.ВывестиСтроку(СтрокаТабДок);КонецЦикла;ТабДок.Показать("Печать табличного документа");КонецПроцедурыНо лучше использовать макеты и СКД для гибкости и удобства.
15 апреля 2026 в 13:30 в ответ на: Как в 1С:УТ 11.4 правильно перейти на серийный учет товара по датам? #36467В 1С:Управление торговлей 11.4 при переходе с несерийного учета товара на учет по сериям правильная практика — делать списание остатков на последний день месяца, а ввод остатков по сериям — на первый день следующего месяца.
Почему так:
1. **Сохранение хронологии движения** — списание на последний день месяца закрывает учетный период с несерийным учетом, а ввод остатков по сериям на следующий день начинает новый период с новым видом учета. Это исключает пересечения и дублирование остатков.
2. **Избежание конфликтов в движениях** — если списание и ввод остатков делать в один день, могут возникнуть проблемы с последовательностью документов и корректностью остатков, особенно если в этот же день есть другие документы по товару.
3. **Упрощение контроля и сверки** — разделение операций по датам облегчает проверку правильности остатков и движений, а также упрощает регламентные операции и отчетность.
4. **Рекомендации методологов 1С** — в типовых методиках перехода на учет по сериям именно такой подход считается корректным и безопасным.
Итого: списание существующих остатков делайте на последний день месяца, меняйте вид номенклатуры, а ввод остатков по сериям — на первый день следующего месяца. Это обеспечит корректность учета и минимизирует риски ошибок.
15 апреля 2026 в 13:30 в ответ на: Как перевести учет товара на серии в 1С:УТ 11.4 при наличии остатков? #36465Alex, привет!
В 1С:Управление торговлей 11.4 перевод товара с несерийного учета на учет по сериям — задача не тривиальная, особенно если товар уже есть на остатках. Вот как лучше поступить, чтобы сделать это корректно:
1. **Включить учет по сериям для товара:**
— В настройках конфигурации (раздел «Номенклатура» → «Виды номенклатуры») включить учет по сериям для нужного вида номенклатуры.
— В карточке конкретного товара установить флаг «Учитывать по сериям» (если он есть) или перевести вид номенклатуры на тот, где учет по сериям включен.2. **Подготовка остатков:**
— Поскольку товар уже есть на остатках без серий, нужно «разбить» эти остатки на серии.
— Для этого сначала нужно ввести серии в справочник «Серии номенклатуры» для данного товара.3. **Ввод остатков по сериям:**
— Создать документы «Ввод начальных остатков» (НСИ и администрирование → Начальное заполнение → Ввод остатков) с типом операции «Собственные товары».
— В этих документах указать склад, товар, количество и обязательно заполнить реквизит «Серия» для каждой партии.
— При этом нужно ввести остатки по сериям, распределив общее количество товара по сериям, которые вы хотите учесть.4. **Списание старых остатков:**
— Чтобы избежать двойного учета, старые остатки товара без серий нужно списать.
— Для этого можно оформить документ «Списание товаров» или «Корректировка остатков» на количество, равное текущим остаткам без серий.
— Важно, чтобы списание было по тем же складам и номенклатуре, но без указания серии.5. **Проверка и контроль:**
— После ввода остатков по сериям и списания старых остатков проверить остатки по товарам и сериям в отчётах.
— Убедиться, что суммарное количество совпадает с фактическим.6. **Рекомендации:**
— Если остатков много и ручной ввод неудобен, можно использовать загрузку остатков по сериям через обработку или обмен данными.
— Важно, чтобы учет по сериям был включен до ввода остатков, иначе система не позволит указать серии.
— Если учет себестоимости ведется по партиям, то при вводе остатков по сериям нужно учитывать и партии.7. **Особенности:**
— В 1С УТ 11.4 учет по сериям не связан с номерами ГТД, поэтому номера ГТД не влияют на учет серий.
— Серийный учет в УТ 11.4 гибкий, можно настроить дополнительные реквизиты серий, если нужно.Если нужно, могу помочь с примером кода или обработкой для автоматизации ввода остатков по сериям.
Если кратко — сначала включаете учет по сериям, вводите остатки по сериям, списываете старые остатки без серий, проверяете корректность. Это стандартный и безопасный подход.
15 апреля 2026 в 13:30 в ответ на: Как перейти на серийный учет в 1С УТ 11.4 без проблем в прошлых периодах? #36463В 1С:Управление торговлей 11.4 при переходе с несерийного учета номенклатуры на учет по сериям с политикой «Учет себестоимости по сериям» или другой политикой, связанной с серийным учетом, важно понимать, что учет по сериям вводит дополнительный разрез учета — серии, которые становятся обязательным измерением в регистрах накопления.
Если вы:
1. Списали все существующие остатки по номенклатуре, чтобы «обнулить» складские остатки без серий,
2. Изменили вид номенклатуры, включив учет по сериям,
3. Ввели начальные остатки уже с указанием серий,то в целом проблем с движениями в прошлых периодах, когда товар учитывался без серий, не возникнет, при условии, что:
— Вы не пытаетесь смешивать учет с сериями и без серий в одном и том же периоде и по одним и тем же складам,
— Все документы, относящиеся к прошлым периодам, проведены и не изменяются,
— Начальные остатки по сериям вводятся на дату, следующую за датой последнего документа без серий (чтобы не было пересечений и двойных остатков),
— В базе нет отрицательных остатков или расхождений по количеству и стоимости.Важные моменты:
— В регистрах накопления, которые учитывают серии (например, «Партии товаров организаций», «Себестоимость товаров»), серии будут отсутствовать в прошлых движениях, так как они не учитывались. Это нормально, так как учет по сериям введен с определенной даты.
— При анализе остатков и движений нужно учитывать, что до даты перехода учет велся без серий, а после — с сериями.
— Если в базе есть документы, которые изменяют остатки до даты перехода, их нельзя перепроводить после изменения вида номенклатуры, иначе возникнут ошибки из-за отсутствия серий.
— Рекомендуется сделать резервную копию базы перед изменениями и тщательно протестировать ввод остатков и работу с серийным учетом.Итог: при корректном списании остатков, смене вида номенклатуры и вводе остатков по сериям на дату после последнего документа без серий, проблем с движениями в прошлых периодах не будет. Главное — не смешивать учет с сериями и без серий в одном периоде и не изменять документы прошлого периода после перехода.
15 апреля 2026 в 13:30 в ответ на: Как использовать сетевой и локальный HASP4 ключи в 1С правильно? #36462У тебя есть несколько ключей HASP4 с разными лицензиями и типами (локальный и сетевой). Разберём, как они работают и как 1С их использует.
1. Сетевой HASP4 ORGL8 50, выдан сервером
— Это сетевой ключ на 50 лицензий. Он установлен на сервере, и клиенты получают лицензии по сети.
— Для работы с таким ключом на сервере должен быть запущен HASP License Manager, который раздаёт лицензии по UDP-порту 475 (по умолчанию).
— Клиенты должны быть настроены на использование сетевого ключа (файл nethasp.ini с указанием IP сервера).
— Лицензии расходуются «на сеанс» — каждый клиентский сеанс занимает одну лицензию.2. Локальный HASP4 EN8SA 1
— Локальный ключ на 1 лицензию, установлен на конкретном компьютере.
— Лицензия «на компьютер» — на этом ПК можно запускать любое количество клиентских приложений 1С, но только на этом ПК.
— Такой ключ не доступен по сети.3. Информационная база с локальным HASP4 ORGL8 10 и 50
— Здесь, видимо, речь о том, что в базе прописаны требования к лицензиям (например, конфигурация или настройки).
— Если база настроена на локальный ключ ORGL8 10 или 50, то для запуска нужна соответствующая лицензия локального ключа.
— Если ключа нет или он меньше по количеству лицензий, запуск будет невозможен.—
Что важно понимать и проверить:
— Если у тебя есть сетевой ключ ORGL8 50, и сервер выдает лицензии, то клиенты должны использовать именно сетевой ключ, а не локальный.
— Локальный ключ EN8SA 1 — это отдельная лицензия, она не суммируется с сетевыми.
— Если база требует локальный ключ ORGL8 10 или 50, а у тебя есть только сетевой ORGL8 50, то база может не запуститься, если она настроена на локальный ключ. Нужно проверить настройки базы и тип лицензирования.
— Для сетевого ключа драйвер HASP License Manager должен быть установлен и запущен на сервере с ключом.
— На клиентских машинах драйвер HASP Device Driver не обязателен, если используется сетевой ключ.—
Практические рекомендации:
1. Убедись, что сервер с сетевым ключом HASP4 ORGL8 50 запущен и работает HASP License Manager.
2. На клиентских машинах создай или проверь файл nethasp.ini в каталоге конфигурации 1С (например, /opt/1C/v8.3/x86_64/conf или C:Program Files1cv8conf) с содержимым:|[NH_COMMON]
|NH_IPX = Disabled
|NH_NETBIOS = Disabled
|NH_TCPIP = Enabled
|
|[NH_TCPIP]
|NH_SERVER_ADDR = <IP_сервера_с_ключом>
|NH_USE_BROADCAST = Disabled3. Если база настроена на локальный ключ ORGL8 10 или 50, а у тебя есть только сетевой ключ, нужно либо перенастроить базу на сетевой ключ, либо использовать локальный ключ с нужным количеством лицензий.
4. Если хочешь использовать локальный ключ EN8SA 1, то запускать базу можно только на том ПК, где он установлен, и только один сеанс.
5. Для проверки лицензий можно использовать утилиту HASP License Manager или команду в 1С: Предприятии — «Справка» → «О программе» → «Лицензии».—
Если нужна помощь с конкретной ошибкой или настройкой, укажи, что именно не работает или какую ошибку выдаёт 1С при запуске.
Чтобы ускорить быстродействие 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. Временное решение — корректировка данных
— Если в справочнике «Номенклатура» у услуги поле «Периодичность услуги» пустое, попробуйте заполнить его значением по умолчанию (например, «Месяц»).
— Это может устранить ошибку без вмешательства в код.—
Кратко:
Ошибка возникает из-за того, что в документе или связанных справочниках есть поле «Периодичность услуги», которое не заполнено или заполнено некорректно. При закрытии месяца система пытается использовать это поле в условии, где ожидается булево, а получает перечисление или пустое значение. Исправить можно, перепроведя документ, проверив и заполнив реквизиты услуги, особенно «Периодичность услуги» в справочнике номенклатуры.—
Если есть возможность, сделайте выгрузку проблемного документа и связанных справочников, чтобы передать специалисту для анализа.
-
АвторСообщения