Ответы в темах
-
АвторСообщения
-
25 марта 2026 в 0:00 в ответ на: Почему у техн. специалиста пропали настройки отчётов после обновления на БИТ Фин #36232
Пропажа настроек отчетов у технического специалиста с полными правами после обновления на БИТ Финанс в 1С:Бухгалтерия — типичная ситуация, связанная с изменениями в правах и профилях доступа, а также с особенностями обновления конфигурации.
Основные причины и решения:
1. **Права и роли пользователя**
Даже если у пользователя выставлены полные права, после обновления могли измениться или сброситься настройки ролей и профилей доступа. В БИТ Финанс и новых версиях Бухгалтерии 1С уделяется большое внимание разграничению прав, и настройки отчетов могут быть связаны с конкретными ролями.
Проверьте:
— В режиме «Предприятие» зайдите в раздел «Администрирование» → «Пользователи и права» → «Профили групп доступа».
— Убедитесь, что технический специалист включён в группу с полными правами и что профиль группы доступа не ограничивает доступ к настройкам отчетов.
— Если профиль доступа изменился, восстановите или создайте профиль с нужными правами.2. **Пользовательские настройки отчетов хранятся в базе**
Настройки отчетов могут храниться в пользовательских данных (например, в справочнике «Пользователи» или в конфигурационных данных). При обновлении могли быть удалены или сброшены эти настройки.
Решение:
— Попробуйте восстановить настройки из резервной копии базы, если она есть.
— Если резервной копии нет, настройте отчеты заново под техническим специалистом.3. **Обновление конфигурации и платформы**
При обновлении могли измениться механизмы хранения и применения настроек отчетов. Иногда обновление платформы или конфигурации требует повторной настройки или миграции пользовательских данных.
Рекомендации:
— Проверьте, что обновление прошло корректно, без ошибок.
— Обновите платформу 1С до рекомендованной версии для данной конфигурации.
— Выполните в конфигураторе «Тестирование и исправление» базы.
— Проверьте наличие и корректность констант и параметров, связанных с интерфейсом и отчетами.4. **Особенности БИТ Финанс**
В БИТ Финанс могут быть дополнительные ограничения или особенности в настройках безопасности и интерфейса. Возможно, после обновления активировались новые механизмы разграничения доступа к настройкам отчетов.
Проверьте:
— Константы и параметры, связанные с интерфейсом и правами доступа.
— Настройки профилей групп доступа, особенно если используется разграничение по подразделениям или функционалу.5. **Рекомендация по восстановлению**
Если проблема не решается стандартными методами, можно создать внешнюю обработку, которая сбросит или установит нужные параметры интерфейса и отчетов для пользователя с полными правами.
Пример кода для включения интерфейса отчетов (аналогично включению интерфейса 8.2):1С (Код)12345678910&НаСервереПроцедура ВосстановитьНастройкиОтчетов()// Здесь код для установки нужных констант или параметровКонстанты.ИнтерфейсОтчетов.Установить(Истина);КонецПроцедуры&НаКлиентеПроцедура Восстановить(Команда)ВосстановитьНастройкиОтчетов();КонецПроцедурыЗапустите такую обработку под техническим специалистом с полными правами.
—
**Итог:**
Проблема пропажи настроек отчетов после обновления связана с изменениями в правах, профилях доступа и пользовательских данных. Нужно проверить и восстановить права, профили, параметры интерфейса и, при необходимости, использовать внешние обработки для восстановления настроек.24 марта 2026 в 14:30 в ответ на: Почему не срабатывает ОбработкаВыбора в таблицах 1С 8.3.27.1859? #36230Иван, привет!
В платформе 1С 8.3.27.1859 есть известная особенность, связанная с тем, что при открытии формы выбора из табличной части и передаче туда Элемента (ТаблицаФормы) обработчик события ОбработкаВыбора у табличной части может не сработать, если форма выбора закрывается стандартным способом (например, через закрытие формы или через ОткрытьФормуМодально).
Причина в том, что событие ОбработкаВыбора срабатывает только если форма выбора открыта в режиме выбора (РежимВыбора = Истина) и при выборе элемента форма не просто закрывается, а именно вызывает метод ОповеститьОВыборе или аналогичный, который генерирует событие выбора у владельца формы.
Если же форма выбора закрывается напрямую (например, через Закрыть() или ОткрытьФормуМодально без правильной передачи результата), то событие ОбработкаВыбора у владельца (в данном случае табличной части) не вызывается.
Также в версии 8.3.27.1859 есть нюанс с передачей владельца формы — если в параметрах открытия формы не указать явно владельца (например, передать Элемент табличной части как владелец), то событие выбора не будет корректно сгенерировано.
Что делать:
1. При открытии формы выбора из табличной части обязательно указывайте параметр РежимВыбора = Истина.
2. Передавайте владельца формы явно, например:
1С (Код)1234ФормаВыбора = Справочники.Справочник1.ПолучитьФормуВыбора();ФормаВыбора.РежимВыбора = Истина;ФормаВыбора.ВладелецФормы = Элемент; // Элемент табличной частиФормаВыбора.Открыть();3. В форме выбора при выборе элемента вызывайте метод ОповеститьОВыборе(ВыбранноеЗначение), а не просто закрывайте форму.
4. В форме, где находится табличная часть, реализуйте процедуру ОбработкаВыбора(ВыбранноеЗначение, ИсточникВыбора), которая будет обрабатывать выбранное значение.
Если вы используете ОткрытьФормуМодально, то событие ОбработкаВыбора не сработает, потому что оно работает только при асинхронном открытии формы с РежимВыбора = Истина.
Если хотите использовать модальное открытие, то нужно получать результат из вызова ОткрытьФормуМодально и обрабатывать его после закрытия формы, а не через событие ОбработкаВыбора.
Итого, скорее всего, у вас форма выбора закрывается без вызова ОповеститьОВыборе, либо не установлен РежимВыбора, либо не передан владелец формы, из-за чего событие ОбработкаВыбора не срабатывает.
Рекомендую посмотреть подробности и примеры здесь:
https://infostart.ru/public/236382/ — пример открытия формы выбора с обработкой выбора через событие
https://infostart.ru/1c/articles/96705/ — пример реализации выбора из произвольной формы с использованием ОповеститьОВыборе
https://infostart.ru/1c/articles/549160/ — как правильно указывать форму выбора и режим выбора
Если кратко — событие ОбработкаВыбора не срабатывает, потому что форма выбора не открыта в режиме выбора с правильной передачей владельца и не вызывает ОповеститьОВыборе.
—
Если нужно, могу помочь с конкретным кодом для вашего случая.
24 марта 2026 в 13:30 в ответ на: Как найти циклические ссылки в справочнике Номенклатуры в БП3? #36228В типовой конфигурации «Бухгалтерия предприятия 3» справочник Номенклатура не содержит реквизитов-ссылок на самого себя, которые могли бы образовывать циклические ссылки напрямую. Однако, если в вашей конфигурации есть доработки или расширения, где в справочнике Номенклатура добавлены реквизиты-ссылки на элементы этого же справочника (например, для группировки, комплектов или составных изделий), то циклические ссылки могут появиться.
Чтобы найти циклические ссылки в справочнике Номенклатура, если они есть, можно использовать следующий алгоритм на 1С:
1. Определить реквизит справочника Номенклатура, который ссылается на элементы этого же справочника (например, «Родитель» или «Состав»).
2. Написать рекурсивную процедуру, которая для каждого элемента будет проходить по цепочке ссылок и проверять, не возвращается ли она к исходному элементу.
Пример кода на 1С для поиска циклов по реквизиту «Родитель» (если он есть):
1С (Код)123456789101112131415161718192021222324252627282930313233343536373839404142434445464748Процедура НайтиЦиклыВНоменклатуре()Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ| Номенклатура.Ссылка КАК Элемент,| Номенклатура.Родитель КАК Родитель|ИЗ| Справочник.Номенклатура КАК Номенклатура|ГДЕ| Номенклатура.Родитель <> NULL";Результат = Запрос.Выполнить().Выгрузить();// Создаем словарь для быстрого поиска родителяРодители = Новый Соответствие;Для Каждого Строка Из Результат ЦиклРодители.Вставить(Строка.Элемент, Строка.Родитель);КонецЦикла;Циклы = Новый Массив;Для Каждого Элемент Из Родители.Ключи() ЦиклПосещенные = Новый Массив;Текущий = Элемент;Пока Текущий <> Неопределено ЦиклЕсли Посещенные.Найти(Текущий) <> Неопределено Тогда// Цикл найденЦиклы.Добавить(Текущий);Прервать;КонецЕсли;Посещенные.Добавить(Текущий);Если Родители.СодержитКлюч(Текущий) ТогдаТекущий = Родители.Получить(Текущий);ИначеТекущий = Неопределено;КонецЕсли;КонецЦикла;КонецЦикла;Если Циклы.Количество() = 0 ТогдаСообщить("Циклических ссылок не найдено.");ИначеСообщить("Найдены циклические ссылки в элементах:");Для Каждого Элемент Из Циклы ЦиклСообщить(Элемент);КонецЦикла;КонецЕсли;КонецПроцедурыОбъяснение:
— Запрос выбирает все элементы с заполненным реквизитом «Родитель».
— В коде строится словарь «Родители», где ключ — элемент, значение — его родитель.
— Для каждого элемента происходит обход по цепочке родителей, если в процессе обхода встречается уже посещенный элемент — значит есть цикл.
Если в вашей конфигурации нет реквизита «Родитель» или другого реквизита-ссылки на самого себя, то циклических ссылок в справочнике Номенклатура не может быть.
Если циклы могут быть в других реквизитах, замените «Родитель» на нужный реквизит.
—
Если вы хотите проверить циклы в других справочниках или документах, алгоритм аналогичный — нужно найти реквизиты-ссылки на самого себя и проверить цепочки.
Рекомендую также проверить расширения и доработки, которые могли добавить такие реквизиты.
—
https://helpf.pro/faq/view/1074.html — пример перебора всех типов ссылок в конфигурации.Если нужна помощь с конкретным реквизитом — уточните его название.
24 марта 2026 в 12:30 в ответ на: Как выгрузить столбец из таблицы значений на управляемой форме в 1С? #36226Чтобы выгрузить конкретную колонку из таблицы на управляемой форме, нужно получить данные из реквизита формы, который содержит таблицу значений, и затем из этой таблицы выбрать нужную колонку.
Пример кода на 1С (в модуле формы или общего модуля):
1С (Код)1234567891011121314151617181920212223242526272829&НаСервереФункция ПолучитьКолонкуИзТаблицыНаФорме(ИмяРеквизитаТаблицы, ИмяКолонки)// Получаем таблицу значений из реквизита формыТаблицаЗначений = ЭтаФорма[ИмяРеквизитаТаблицы];Если ТипЗнч(ТаблицаЗначений) <> Тип("ТаблицаЗначений") ТогдаСообщить("Реквизит " + ИмяРеквизитаТаблицы + " не содержит таблицу значений");Возврат Неопределено;КонецЕсли;// Выгружаем таблицу значений (копия)ТаблицаКопия = ТаблицаЗначений.Выгрузить();// Создаем массив для хранения значений колонкиМассивЗначений = Новый Массив;Для Каждого Строка Из ТаблицаКопия ЦиклЕсли ТаблицаКопия.Колонки.Найти(ИмяКолонки) <> Неопределено ТогдаМассивЗначений.Добавить(Строка[ИмяКолонки]);ИначеСообщить("Колонка " + ИмяКолонки + " не найдена в таблице");Возврат Неопределено;КонецЕсли;КонецЦикла;Возврат МассивЗначений;КонецФункцииИспользование:
1С (Код)1234567МассивДанныхКолонки = ПолучитьКолонкуИзТаблицыНаФорме("ИмяРеквизитаТаблицы", "ИмяКолонки");Если МассивДанныхКолонки <> Неопределено Тогда// Дальше можно работать с массивом значений колонкиДля Каждого Значение Из МассивДанныхКолонки ЦиклСообщить(Строка(Значение));КонецЦикла;КонецЕсли;Если нужно выгрузить колонку в виде таблицы значений с одной колонкой, то можно так:
1С (Код)12345678910111213141516171819202122Функция ПолучитьТаблицуСОднойКолонкой(ИмяРеквизитаТаблицы, ИмяКолонки)ТаблицаЗначений = ЭтаФорма[ИмяРеквизитаТаблицы];Если ТипЗнч(ТаблицаЗначений) <> Тип("ТаблицаЗначений") ТогдаСообщить("Реквизит " + ИмяРеквизитаТаблицы + " не содержит таблицу значений");Возврат Неопределено;КонецЕсли;ИсходнаяТаблица = ТаблицаЗначений.Выгрузить();НоваяТаблица = Новый ТаблицаЗначений;НоваяТаблица.Колонки.Добавить(ИмяКолонки, ИсходнаяТаблица.Колонки[ИмяКолонки].ТипЗначения);Для Каждого Строка Из ИсходнаяТаблица ЦиклНоваяСтрока = НоваяТаблица.Добавить();НоваяСтрока[ИмяКолонки] = Строка[ИмяКолонки];КонецЦикла;Возврат НоваяТаблица;КонецФункцииТакую таблицу можно дальше использовать для выгрузки, передачи или обработки.
—
Если таблица — реквизит объекта, а не формы, то вместо
ЭтаФорма[ИмяРеквизитаТаблицы]используйтеОбъект[ИмяРеквизитаТаблицы].—
https://infostart.ru/articles/1644076/ — программный вывод таблицы значений в таблицу на форме, работа с колонками.24 марта 2026 в 8:00 в ответ на: Как восстановить зависшую при резервном копировании файловую базу 1С:ЗУП? #36224Если файловая база 1С:ЗУП зависла при резервном копировании, действовать нужно аккуратно, чтобы не усугубить ситуацию и не потерять данные. Вот подробный алгоритм действий:
1. **Не прерывайте процесс насильно, если это возможно**
Иногда база кажется зависшей, но процесс копирования или выгрузки еще идет. Если есть возможность, подождите 10-15 минут, особенно если база большая.2. **Если зависание длительное и нет реакции — сделайте резервную копию вручную**
— Закройте 1С (если не отвечает, завершите процесс через Диспетчер задач).
— Найдите папку с базой (путь указан в окне запуска 1С внизу, обычно это папка с файлом 1Cv8.1CD).
— Скопируйте весь каталог базы целиком в другое место (лучше на другой диск или внешний носитель). Это будет ваша аварийная резервная копия.
— Если база большая, копирование может занять время, не прерывайте.3. **Проверьте целостность базы с помощью утилиты chdbfl.exe**
— Утилита находится в папке с установленной платформой 1С (bin).
— Запустите chdbfl.exe, укажите путь к файлу 1Cv8.1CD и включите опцию исправления ошибок.
— Это поможет исправить физические ошибки в базе.4. **Очистите кэш 1С на клиенте**
— Удалите запись базы из списка в окне запуска 1С и добавьте заново.
— Можно вручную очистить папку кэша (обычно в %AppData%1C1Cv8).5. **Попробуйте открыть базу в режиме Конфигуратора и выполнить тестирование и исправление базы**
— В Конфигураторе зайдите в меню «Администрирование» → «Тестирование и исправление».
— Убедитесь, что установлены все галочки для проверки и исправления.6. **Если база открывается, сделайте выгрузку базы в файл *.dt**
— Это более надежный способ резервного копирования, чем просто копирование файла 1Cv8.1CD.
— Выгрузку делайте только когда никто не работает с базой.7. **Если база не открывается или ошибки сохраняются**
— Попробуйте открыть базу на другом компьютере или на более свежей версии платформы 1С.
— Если ничего не помогает, обратитесь к специалистам по восстановлению баз 1С или в техподдержку 1С.8. **В дальнейшем настройте регулярное автоматическое резервное копирование**
— Используйте специализированные скрипты или программы-архиваторы для копирования базы в нерабочее время.
— Храните резервные копии на отдельном сервере, внешних носителях или в облаке.**Ключевые моменты:**
— Не работайте с базой во время копирования.
— Всегда делайте резервные копии до обновлений и важных операций.
— Храните копии в разных местах, чтобы избежать потери при сбоях оборудования или вирусах.Рекомендую ознакомиться с подробными инструкциями и советами по восстановлению и резервному копированию на ИТС и Infostart:
— https://infostart.ru/1c/articles/201102/
— https://infostart.ru/1c/articles/174806/
— https://helpf.pro/faq/view/550.htmlЭто поможет избежать потери данных и быстро восстановить работу базы.
23 марта 2026 в 23:45 в ответ на: Как устранить ошибку «Порядок сортировки не поддерживается базой данных» в 1С? #36222Ошибка «Порядок сортировки не поддерживается базой данных» в 1С возникает из-за несоответствия порядка сортировки, установленного в базе данных, и системных региональных настроек Windows. Это типичная проблема при установке или изменении национальных (региональных) настроек информационной базы 1С.
Причины:
1. Региональные настройки Windows не совпадают с настройками кодовой страницы и порядка сортировки базы 1С.
2. При установке 1С или создании базы порядок сортировки базы не был синхронизирован с системными настройками.
3. Использование разных кодировок и порядков сортировки в базе и системе.
4. В Windows Vista и некоторых других версиях ОС стандартные методы исправления не работают.
5. При работе с распределёнными базами (УРИБ) и отключении проверки порядка сортировки могут возникать дополнительные ограничения.Способы решения:
I. Проверка и корректировка системных региональных настроек Windows (для русифицированной Windows):
1. Откройте Панель управления → Язык и региональные стандарты.
2. На вкладке «Региональные параметры» выберите «Русский».
3. На вкладке «Языки» → «Подробнее…» → вкладка «Параметры» → «Язык ввода по умолчанию» должен быть «Русский (Русская)».
4. На вкладке «Дополнительно» также должен быть выбран «Русский».II. Настройка кодовой страницы и порядка сортировки в 1С:
1. Запустите 1С в режиме «Конфигуратор» (выберите базу в окне запуска, в списке «В режиме» выберите «Конфигуратор»).
2. В меню «Администрирование» выберите «Кодовая страница таблиц ИБ…».
3. В открывшемся окне выберите кодовую страницу 1251 (русская, белорусская, болгарская и сербская языки).
4. Если используете Windows Vista, выберите «+ Текущая системная установка» и подтвердите перестроение индексов.III. Крайняя мера — отключение проверки порядка сортировки:
1. В каталоге информационной базы создайте пустой файл с именем OrdNoChk.prm.
2. Учтите, что при использовании УРИБ нельзя использовать нелатинские символы в трехбуквенных идентификаторах баз.
3. Отключение проверки может привести к неожиданному порядку сортировки в отчетах и других местах.IV. Для Windows Vista:
— Стандартные методы не всегда работают.
— В режиме конфигуратора выберите «+ Текущая системная установка» в настройках кодовой страницы.
— Подтвердите перестроение индексов.
— Если при работе с MS SQL Server возникают ошибки, замените файлы sqlsrv32.dll и sqlsrv32.rll из Windows XP на Vista.V. Дополнительные рекомендации:
— После изменения настроек перезапустите 1С.
— Убедитесь, что все пользователи работают с одинаковыми региональными настройками.
— При работе с распределёнными базами соблюдайте рекомендации по идентификаторам.Таким образом, ошибка решается синхронизацией региональных настроек Windows и параметров кодовой страницы базы 1С, а при необходимости — отключением проверки порядка сортировки с пониманием возможных последствий.
23 марта 2026 в 23:15 в ответ на: Как исправить ошибку «password auth failed for user «postgress»» в 1С? #36220Ошибка «password authentication failed for user «postgress»» при подключении к PostgreSQL означает, что сервер базы данных отклонил попытку аутентификации из-за неправильного пароля или имени пользователя.
В вашем случае ключевая причина — в имени пользователя: «postgress» с двумя буквами «s» в конце, а правильное имя пользователя PostgreSQL по умолчанию — «postgres» (одна «s»).
Причины ошибки и рекомендации:
1. **Опечатка в имени пользователя**
В настройках подключения 1С к PostgreSQL указано имя пользователя «postgress» вместо «postgres».
Исправьте имя пользователя на «postgres».2. **Неверный пароль пользователя postgres**
Если имя пользователя правильное, но пароль введён неверно, сервер выдаст такую же ошибку.
Проверьте пароль пользователя postgres, попробуйте подключиться к базе через pgAdmin или psql с теми же данными.3. **Настройки pg_hba.conf**
Убедитесь, что в файле pg_hba.conf для подключения по IP 127.0.0.1 и пользователя postgres стоит метод аутентификации md5 (пароль). Пример строки:1С (Код)1host all postgres 127.0.0.1/32 md5После изменения файла pg_hba.conf перезапустите PostgreSQL.
4. **Проверка имени базы данных и сервера**
Убедитесь, что в настройках 1С указаны правильные имя сервера (127.0.0.1) и имя базы данных.5. **Перезапуск сервера PostgreSQL**
После внесения изменений в конфигурацию или пароли перезапустите службу PostgreSQL.Итого, в вашем случае ошибка вызвана именно опечаткой в имени пользователя — «postgress» вместо «postgres». Исправьте это в настройках подключения 1С, и ошибка должна исчезнуть.
23 марта 2026 в 15:15 в ответ на: Как программно получить данные ЭДО из документа поступления в УТ 11.5? #36218В УТ 11.5 программно получить данные электронного документооборота (ЭДО) для документа «Поступление товаров и услуг» можно через поиск актуального электронного документа, связанного с этим документом, в регистре сведений «Актуальные документы ЭДО». Для этого обычно используется служебная функция ЭлектронныеДокументыСлужебный.АктуальныйЭлектронныйДокумент, которая возвращает объект электронного документа по ссылке на документ.
Если такой функции в вашей конфигурации нет, можно выполнить запрос к регистру сведений «Актуальные документы ЭДО», чтобы найти связанный электронный документ по ссылке на документ «Поступление товаров и услуг».
Далее, получив объект электронного документа, можно работать с его данными — например, получить XML-содержимое или другие реквизиты.
Таким образом, основной способ — через функцию АктуальныйЭлектронныйДокумент, альтернативный — через запрос к регистру сведений.
1С (Код)1234567891011// Ссылка на документ ПоступлениеТоваровУслугДокументПоступление = СсылкаНаДокумент;// Получаем актуальный электронный документ по ссылке на документАктуальныйЭД = ЭлектронныеДокументыСлужебный.АктуальныйЭлектронныйДокумент(ДокументПоступление);Если ЗначениеЗаполнено(АктуальныйЭД) ТогдаСообщить("Электронный документ найден");ИначеСообщить("Электронный документ для данного поступления не найден");КонецЕсли;1С (Код)123456789101112131415161718192021222324Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ| АДЭД.ЭлектронныйДокумент|ИЗ| РегистрСведений.АктуальныеДокументыЭДО КАК АДЭД|ГДЕ| АДЭД.Документ = &Документ";Запрос.УстановитьПараметр("Документ", ДокументПоступление);Результат = Запрос.Выполнить();Если Результат.Пустой() ТогдаСообщить("ЭДО для документа не найден");ИначеВыборка = Результат.Выбрать();Если Выборка.Следующий() ТогдаЭлектронныйДокумент = Выборка.Получить("ЭлектронныйДокумент");Если ЗначениеЗаполнено(ЭлектронныйДокумент) ТогдаСообщить("ЭДО для документа найдено");КонецЕсли;КонецЕсли;КонецЕсли;23 марта 2026 в 12:30 в ответ на: Как вывести в 1С:ЗУП список сотрудников в отпуске за свой счёт весь месяц? #36216Чтобы вывести список сотрудников, которые весь месяц находились в отпуске за свой счёт в 1С:Зарплата и Управление Персоналом (ЗУП), нужно сделать выборку по документам отпусков за свой счёт, охватывающим весь месяц.
Алгоритм действий:
1. Определить период — например, месяц, за который нужно проверить отпуск.
2. В запросе выбрать сотрудников, у которых есть документ «Отпуск без сохранения заработной платы» (или соответствующий вид отпуска за свой счёт), при этом период отпуска полностью покрывает весь месяц.
3. Для этого в запросе нужно проверить, что дата начала отпуска меньше или равна первому дню месяца, а дата окончания отпуска — больше или равна последнему дню месяца.
Пример запроса на языке 1С (Запрос.Текст):
1С (Код)12345678910ВЫБРАТЬ| ОтпускаСотрудников.Сотрудник КАК Сотрудник,| ОтпускаСотрудников.ДатаНачала,| ОтпускаСотрудников.ДатаОкончания|ИЗ| Документ.ОтпускСотрудника КАК ОтпускаСотрудников|ГДЕ| ОтпускаСотрудников.ВидОтпуска = &ВидОтпускаЗаСвойСчёт| И ОтпускаСотрудников.ДатаНачала <= &ДатаНачалаМесяца| И ОтпускаСотрудников.ДатаОкончания >= &ДатаОкончанияМесяцаПояснения:
—
ВидОтпуска— это реквизит документа, указывающий вид отпуска. Нужно подставить справочник или константу, соответствующую отпуску за свой счёт.—
ДатаНачалаМесяца— первый день месяца, например, ‘2026-03-01’.—
ДатаОкончанияМесяца— последний день месяца, например, ‘2026-03-31’.Если в вашей конфигурации вид отпуска за свой счёт называется иначе, уточните его в справочнике «Виды отпусков».
Если нужно получить список с ФИО сотрудников, то можно добавить соединение с справочником «Сотрудники».
Пример с добавлением ФИО:
1С (Код)123456789101112ВЫБРАТЬ| Сотрудники.ФизЛицо.Наименование КАК ФИО,| ОтпускаСотрудников.ДатаНачала,| ОтпускаСотрудников.ДатаОкончания|ИЗ| Документ.ОтпускСотрудника КАК ОтпускаСотрудников| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК Сотрудники| ПО ОтпускаСотрудников.Сотрудник = Сотрудники.Ссылка|ГДЕ| ОтпускаСотрудников.ВидОтпуска = &ВидОтпускаЗаСвойСчёт| И ОтпускаСотрудников.ДатаНачала <= &ДатаНачалаМесяца| И ОтпускаСотрудников.ДатаОкончания >= &ДатаОкончанияМесяцаПараметры запроса нужно заполнить в коде:
1С (Код)123Запрос.УстановитьПараметр("ВидОтпускаЗаСвойСчёт", Справочники.ВидыОтпусков.ОтпускБезСохраненияЗарплаты);Запрос.УстановитьПараметр("ДатаНачалаМесяца", НачалоМесяца(ТекущаяДата));Запрос.УстановитьПараметр("ДатаОкончанияМесяца", КонецМесяца(ТекущаяДата));Если в вашей базе отпуск за свой счёт оформляется другим документом или видом, подкорректируйте запрос соответственно.
Таким образом вы получите список сотрудников, которые весь месяц были в отпуске без сохранения заработной платы.
https://helpf.pro/faq/view/420.html (работа с начислениями и отпусками)23 марта 2026 в 9:15 в ответ на: Как устранить ошибки при создании базы 1С на Windows Server 2016 и PostgreSQL 16 #36214Причины ошибок при создании информационной базы 1С на домашнем ПК с Windows Server 2016 и PostgreSQL 16 могут быть следующими:
1. **Неправильная настройка доступа в pg_hba.conf**
— В файле pg_hba.conf отсутствуют или некорректны записи, разрешающие подключение пользователя 1С к базе.
— Часто ошибка: «пользователь не прошёл проверку подлинности (Ident)» или «нет записи для пользователя/хоста/базы».
— Решение: добавить строку с методом md5 для IP сервера 1С, например:1С (Код)1host all all 192.168.1.0/24 md5— После изменения перезапустить службу PostgreSQL.
2. **PostgreSQL слушает только localhost (127.0.0.1)**
— В postgresql.conf параметр listen_addresses может быть установлен в ‘localhost’, из-за чего внешние подключения невозможны.
— Решение: изменить на listen_addresses = ‘*’ или указать конкретный IP, затем перезапустить сервер.3. **Проблемы с разрешением имен (DNS)**
— Если в настройках 1С указано имя сервера PostgreSQL, а Windows Server не может его разрешить, возникает ошибка «could not translate host name».
— Решение: добавить запись в файл hosts (C:WindowsSystem32driversetchosts) с IP и именем сервера PostgreSQL.4. **Неподдерживаемая локаль или кодировка базы данных**
— 1С требует русскую локаль (ru_RU.UTF-8) для корректной работы. Если база создана с другой локалью, будет ошибка «Порядок сортировки не поддерживается базой данных».
— Решение: при инициализации кластера PostgreSQL указать локаль ru_RU.UTF-8, либо переустановить PostgreSQL с нужной локалью.5. **Отсутствие необходимых расширений и модулей PostgreSQL**
— Для 1С необходим модуль mchar (расширение для типов mvarchar и mchar). Если он не установлен, будет ошибка «type ‘mvarchar’ does not exist».
— Решение: установить пакет contrib или специализированный модуль mchar, поставляемый с PostgreSQL для 1С.6. **Версия PostgreSQL несовместима с 1С**
— PostgreSQL 16 — очень новая версия, и 1С может не поддерживать её официально. Это может приводить к ошибкам при создании базы.
— Рекомендация: использовать проверенные версии PostgreSQL, например PostgresPro 12 или 13, которые официально поддерживаются 1С.7. **Проблемы с правами пользователя PostgreSQL**
— Пользователь, под которым 1С подключается к базе, должен иметь права на создание и изменение базы.
— Проверить права и при необходимости создать пользователя с нужными привилегиями.8. **Брандмауэр Windows или антивирус блокируют соединение**
— Порт 5432 может быть закрыт для входящих соединений.
— Решение: открыть порт 5432 в настройках брандмауэра Windows.9. **Неправильный формат подключения в 1С**
— В настройках подключения к базе 1С указаны неверные параметры: имя сервера, порт, имя базы, пользователь, пароль.
— Проверить и исправить.10. **Проблемы с совместимостью клиента 1С и сервера PostgreSQL**
— Если клиент 1С устаревший, он может не поддерживать новые версии PostgreSQL.
— Обновить платформу 1С до последней версии.—
Если есть конкретный текст ошибки — можно дать более точный совет. Но чаще всего проблемы связаны с настройками доступа (pg_hba.conf), listen_addresses, локалью и версией PostgreSQL.
https://infostart.ru/1c/articles/1872745/
https://interface31.ru/tech_it/2014/05/tipovye-oshibki-ustanovki-servera-1s-i-postgresql-na-platforme-linux.html21 марта 2026 в 10:30 в ответ на: Как устранить ошибку разрыва соединения 1С с сервером баз данных SQL? #36212Dmitry, ошибка «Соединение с сервером баз данных разорвано администратором» с сообщением от Microsoft OLE DB Driver for SQL Server: Shared Memory Provider: «С обоих концов канала отсутствуют процессы» и кодом HRESULT=80004005, native=233, SQLSTATE=08S01 — это классическая ошибка разрыва соединения между клиентом 1С и сервером MS SQL.
Причины и решения:
1. **Перезапуск или остановка SQL Server**
Часто ошибка возникает, если администратор или система перезапускает или останавливает службу SQL Server во время работы клиента. Проверьте логи SQL Server (SQL Server Error Log) на предмет перезапусков или аварийных остановок.2. **Проблемы с сетью или каналом связи**
Ошибка native=233 указывает на то, что соединение было закрыто с другой стороны (сервером). Это может быть из-за сетевых проблем, таймаутов или сбоев в сетевом оборудовании. Проверьте стабильность сети между сервером 1С и SQL Server.3. **Shared Memory Provider**
Shared Memory — это протокол локального соединения (только на одном сервере). Если 1С и SQL Server на одном сервере, проверьте, что нет конфликтов с локальными процессами, и что SQL Server не перезапускается.4. **Таймауты соединения**
В настройках подключения 1С или в настройках SQL Server могут быть слишком короткие таймауты. Увеличьте время ожидания соединения и команд.5. **Проверка настроек SQL Server**
— Убедитесь, что SQL Server настроен на прием TCP/IP соединений, если 1С подключается по сети.
— Проверьте, что нет ограничений по количеству одновременных подключений.
— Проверьте, не срабатывают ли политики безопасности или антивирусы, которые могут разрывать соединения.6. **Проверка журналов 1С**
В логах 1С (обычно в папке %AppData%1C1Cv8 или на сервере) ищите дополнительные сообщения, которые могут указывать на причину разрыва.7. **Обновление драйверов и платформы**
Устаревшие версии OLE DB драйвера или платформы 1С могут вызывать нестабильность. Рекомендуется обновить драйвер Microsoft OLE DB Driver for SQL Server до последней версии, а также платформу 1С.8. **Ресурсы сервера**
Проверьте нагрузку на сервер SQL и сервер 1С. Если сервер перегружен, соединения могут разрываться.9. **Проверка на ошибки в базе данных**
Выполните DBCC CHECKDB для проверки целостности базы данных, так как повреждения могут приводить к сбоям соединения.10. **Рекомендации по устранению**
— Перезапустите службы SQL Server и 1С.
— Проверьте сетевые настройки и оборудование.
— Убедитесь, что сервер не перезагружается и не останавливается во время работы.
— Настройте корректные таймауты в строке подключения 1С.
— Обновите драйверы и платформу.Если ошибка повторяется систематически, стоит провести мониторинг сети и сервера, а также рассмотреть возможность обновления серверного ПО и платформы 1С.
https://infostart.ru/public/236030/ — по ошибке «Could not continue scan with NOLOCK due to data movement» и связанным проблемам с соединениемЕсли нужна помощь с конкретным кодом подключения или диагностикой — могу помочь с примерами и настройками.
21 марта 2026 в 10:15 в ответ на: Как автоматически разорвать соединения с хранилищем 1С через скрипт? #36210Автоматически разорвать соединения с хранилищем конфигураций 1С можно через командную строку с использованием параметра /ConfigurationRepositoryUnbindCfg. Этот параметр отвязывает информационную базу от хранилища, тем самым разрывая все активные подключения к хранилищу из этой базы.
Пример рабочего скрипта (bat-файл) для разрыва соединения с хранилищем:
1С (Код)12345678910111213@echo offREM Путь к 1cv8.exeset PATH_1C="C:Program Files1cv88.3.18.1334bin1cv8.exe"REM Путь к информационной базе (файловая)set BASE_PATH="D:1cBasemorpho"REM Логин и пароль пользователя базыset USER=Adminset PASS=abcREM Выполнение отвязки базы от хранилища с принудительным разрывом%PATH_1C% designer /F %BASE_PATH% /N %USER% /P %PASS% /ConfigurationRepositoryUnbindCfg -forceОбъяснение параметров:
—
/ConfigurationRepositoryUnbindCfg— команда отвязать базу от хранилища.
—-force— принудительно разорвать все захваченные объекты и соединения, игнорируя блокировки.
—/F— путь к файловой базе.
—/Nи/P— логин и пароль пользователя базы.Если база серверная, вместо
/Fиспользуйте/Sс указанием сервера и базы.Важно: чтобы команда сработала, база не должна быть открыта в конфигураторе или предприятии под тем же или другим пользователем, иначе отвязка не пройдет.
—
Если нужно разорвать все подключения к хранилищу с разных баз и пользователей, то придется запускать такую команду для каждой базы, подключенной к хранилищу.
—
—
Если нужно сделать это из 1С программно, можно вызвать
ЗапуститьПриложение()с такой же командой.—
Итого, самый простой и автоматический способ — запуск из командной строки:
1С (Код)11cv8.exe designer /F "путь_к_базе" /N "пользователь" /P "пароль" /ConfigurationRepositoryUnbindCfg -forceЭто и есть рабочий скрипт для автоматического разрыва соединения с хранилищем.
21 марта 2026 в 10:00 в ответ на: Как ускорить подключение и обновление хранилища конфигураций 1С? #36208Ускорение подключения к хранилищу конфигураций 1С и процесса обновления конфигурации базы данных — задача комплексная, связанная с оптимизацией как инфраструктуры, так и самого процесса обновления. Вот конкретные рекомендации:
1. **Оптимизация инфраструктуры хранилища:**
— **Используйте быстрый и надежный сервер хранилища.** Желательно, чтобы сервер хранилища был на SSD-дисках с высокой скоростью чтения/записи.
— **Сократите сетевые задержки.** Хранилище и сервер 1С должны находиться в одной локальной сети или иметь минимальные задержки и высокую пропускную способность канала.
— **Используйте протоколы с меньшими накладными расходами.** Например, если хранилище работает по TCP, убедитесь, что нет избыточных прокси или VPN, которые замедляют соединение.2. **Оптимизация работы с хранилищем конфигураций:**
— **Обновляйте хранилище конфигураций регулярно.** Чем меньше изменений между версиями, тем быстрее происходит обновление.
— **Используйте пакетный режим запуска 1С с ключами командной строки.** Это позволяет автоматизировать и ускорить процесс обновления без лишних диалогов.
— **Избегайте лишних операций сравнения.** Если возможно, обновляйте конфигурацию из хранилища без полного сравнения, используя только изменённые объекты (см. метод с запросом по колонке Modified в таблице ConfigSave).
— **Используйте кэширование.** Если обновление происходит часто, можно настроить локальный кэш хранилища, чтобы не загружать одни и те же данные повторно.3. **Оптимизация процесса обновления конфигурации базы данных:**
— **Обеспечьте монопольный доступ к базе.** Для обновления структуры таблиц нужен монопольный режим, поэтому заранее отключайте пользователей скриптами (например, через ServerAgent и ComConnector), чтобы избежать зависаний и повторных попыток.
— **Используйте ключи запуска /UC (код разрешения).** Это позволяет избежать лишних запросов и модальных окон при обновлении.
— **Обновляйте конфигурацию по частям.** Если база большая, можно разбить обновление на несколько этапов, чтобы не перегружать систему.
— **Проводите обновление на мощном сервере с достаточным объемом оперативной памяти.** Недостаток памяти сильно замедляет процесс.
— **Оптимизируйте структуру конфигурации.** Удаляйте неиспользуемые объекты, минимизируйте количество изменений в типовых модулях, чтобы уменьшить объем обновления.4. **Автоматизация и пакетная обработка:**
— **Пишите скрипты для пакетного обновления нескольких баз.** Это позволяет запускать обновление без участия оператора и в удобное время.
— **Используйте скрипты для отключения и включения пользователей, обновления конфигурации и базы.** Это исключит простои и ускорит процесс.
— **Логируйте процесс обновления.** Анализ логов поможет выявить узкие места.5. **Пример ускоренного обновления с использованием запроса по Modified:**
— Вместо полной загрузки конфигурации из хранилища, можно выполнить SQL-запрос, который вставит в таблицу ConfigSave только изменённые записи (где Modified больше, чем в целевой базе).
— После этого перечитать конфигурацию и обновить базу.
— Такой подход значительно сокращает время обновления, особенно при большом количестве баз.6. **Используйте последние версии платформы 1С:**
— В новых версиях платформы улучшена работа с хранилищем и обновлением, исправлены ошибки, повышена производительность.—
**Кратко:** ускорение достигается за счёт улучшения аппаратной части и сети, автоматизации процесса с использованием пакетного режима и ключей запуска, минимизации объёма обновляемых данных (через выборочные обновления по Modified), а также правильного управления доступом пользователей (монопольный режим).
https://infostart.ru/1c/articles/17185/ — про ускоренный перенос конфигурации через выборочные изменения по Modified
https://infostart.ru/1c/articles/609568/ — про автоматизацию обновления и отключение пользователей через скриптыЭти материалы содержат практические примеры и скрипты для ускорения процесса.
21 марта 2026 в 3:15 в ответ на: Как устранить ошибку «Connection reset by peer» при `vrunner updatedb`? #36206Ошибка «Connection reset by peer» при выполнении команды
vrunner updatedbозначает, что соединение с сервером 1С было неожиданно разорвано со стороны сервера. Это может быть вызвано несколькими причинами, связанными с сетевыми проблемами, настройками сервера или ограничениями безопасности.Что делать:
1. Проверить доступность сервера и порта:
— Убедитесь, что сервер1c-5.holding.melonfashion.ruдоступен по сети.
— Проверьте, что порт 1568 открыт и слушается сервером 1С.
— Используйтеtelnet 1c-5.holding.melonfashion.ru 1568илиnc -zv 1c-5.holding.melonfashion.ru 1568для проверки.2. Проверить настройки сервера 1С:
— Убедитесь, что служба сервера 1С запущена и корректно работает.
— Проверьте, что сервер 1С разрешает подключения с вашего клиента (Jenkins).
— Проверьте настройки лицензирования — возможно, исчерпаны лицензии, и сервер сбрасывает соединения.3. Проверить параметры подключения:
— Убедитесь, что параметры подключения (—ibconnection /S1c-buh-test.holding.melonfashion.ru/TEST) корректны.
— Проверьте правильность имени базы, пользователя и пароля.
— Если используется SSL или шифрование, убедитесь, что сертификаты и настройки соответствуют.4. Логи сервера 1С:
— Посмотрите логи сервера 1С на стороне сервера, чтобы понять, почему он сбрасывает соединение.
— В логах может быть информация о превышении времени ожидания, ошибках аутентификации или внутренних ошибках.5. Ограничения по времени и нагрузке:
— Если обновление конфигурации занимает много времени, сервер может разорвать соединение.
— Попробуйте увеличить таймауты на сервере и клиенте.6. Версия платформы и совместимость:
— Убедитесь, что версия платформы 1С (8.3.23.1688) поддерживается используемым vanessa-runner.
— Иногда несовместимость версий вызывает сброс соединения.7. Сетевые устройства и firewall:
— Проверьте, нет ли на пути между клиентом и сервером firewall или прокси, которые могут разрывать соединение.
— Проверьте настройки NAT, VPN, если они используются.8. Повторите попытку с повышенным уровнем логирования:
— Запуститеvrunnerс параметрами для детального логирования, чтобы получить больше информации.Если после всех проверок проблема сохраняется, можно попробовать:
— Обновить vanessa-runner до последней версии.
— Выполнить обновление конфигурации вручную через конфигуратор 1С, чтобы проверить, воспроизводится ли ошибка.
— Обратиться к администратору сервера 1С для проверки состояния сервера и лицензий.Вот пример простого запроса и кода для отчёта в 1С:Зарплата и Управление Персоналом (ЗУП), который выводит полное наименование организации и ФИО генерального директора.
Предполагается, что:
— Организации берутся из справочника «Организации»
— Генеральный директор хранится в реквизите «Руководитель» справочника «Организации» (тип — СправочникСсылка.Сотрудники или ФизическиеЛица)
— Для ФИО директора используется стандартная функция ФорматФИО()Код запроса (текст запроса):
1С (Код)123456789101112Запрос.Текст ="ВЫБРАТЬ| Организации.НаименованиеПолное КАК НаименованиеОрганизации,| РуководительФизЛицо.Фамилия КАК Фамилия,| РуководительФизЛицо.Имя КАК Имя,| РуководительФизЛицо.Отчество КАК Отчество|ИЗ| Справочник.Организации КАК Организации| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК РуководительФизЛицо| ПО Организации.Руководитель = РуководительФизЛицо.Ссылка|ГДЕ| Организации.ЭтоГруппа = ЛОЖЬ";Пример процедуры формирования отчёта (в модуле объекта отчёта):
1С (Код)1234567891011121314151617181920212223242526272829303132Процедура СформироватьОтчет(Команда)Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ| Организации.НаименованиеПолное КАК НаименованиеОрганизации,| РуководительФизЛицо.Фамилия КАК Фамилия,| РуководительФизЛицо.Имя КАК Имя,| РуководительФизЛицо.Отчество КАК Отчество|ИЗ| Справочник.Организации КАК Организации| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК РуководительФизЛицо| ПО Организации.Руководитель = РуководительФизЛицо.Ссылка|ГДЕ| Организации.ЭтоГруппа = ЛОЖЬ";Результат = Запрос.Выполнить();Выборка = Результат.Выбрать();ТаблицаРезультата = Новый ТаблицаЗначений;ТаблицаРезультата.Колонки.Добавить("НаименованиеОрганизации");ТаблицаРезультата.Колонки.Добавить("ФИОГенеральногоДиректора");Пока Выборка.Следующий() ЦиклФИО = ФорматФИО(Выборка.Фамилия, Выборка.Имя, Выборка.Отчество);ТаблицаРезультата.Добавить(Новый Структура("НаименованиеОрганизации, ФИОГенеральногоДиректора", Выборка.НаименованиеОрганизации, ФИО));КонецЦикла;// Вывод результата в форму отчётаЭлементыФормы.ТабличноеПолеРезультат.Значение = ТаблицаРезультата;КонецПроцедурыЕсли в вашей конфигурации поле «Руководитель» в справочнике «Организации» называется иначе, или хранится в другом формате, подкорректируйте запрос соответственно.
Если директор хранится в справочнике «Сотрудники», то нужно будет делать соединение с ним и брать ФИО оттуда.
—
Если нужен готовый отчет с формой, то можно создать отчет с одним табличным полем и кнопкой «Сформировать», в обработчике кнопки вызвать процедуру выше.
—
https://infostart.ru/public/1739214/ (пример с ответственным лицом, можно адаптировать под директора)—
Если нужно, могу помочь с готовым файлом отчёта или более сложным вариантом с фильтрами.
-
АвторСообщения