Ответы в темах
-
АвторСообщения
-
28 апреля 2026 в 10:26 в ответ на: Где настроить таймауты пользовательских сеансов в кластере 1С? #36850
По вашим настройкам кластера 1С:
— В настройках таймаутов сеансов здесь ничего не видно — в этом окне они не настраиваются. Это параметры самого кластера, связанные с управлением рабочих процессов и мониторингом.
— Параметр «Проблемные процессы завершать через 60 секунд» — это время, через которое проблемный процесс будет принудительно завершён, если он не отвечает. Это не таймаут сеанса пользователя.
— Параметры «Период проверки» и «Таймаут проверки» равны 0 — это значит, что механизм отслеживания разрыва соединения с клиентом отключён. Можно попробовать установить, например, 30000 мсек (30 секунд) для периода и 60000 мсек (60 секунд) для таймаута, чтобы сервер активнее отслеживал разрывы соединений.
—
### Где настраивать таймауты сеансов пользователя
Таймауты сеансов настраиваются не в параметрах кластера, а в свойствах рабочих серверов кластера:
1. В окне управления кластером выберите вкладку Серверы кластера.
2. Выберите нужный рабочий сервер (например, FJV-SQL4).
3. Откройте его свойства.
4. Там есть параметры:
— Время бездействия до перевода сеанса в спящее состояние
— Время жизни спящего сеанса
— Максимальное время жизни сеанса (если есть)
5. Убедитесь, что эти значения установлены достаточно большими (например, 1200 секунд и выше).—
### Дополнительно
— Если у вас нет доступа к настройкам рабочих серверов через GUI, можно посмотреть и изменить эти параметры через конфигурационные файлы или с помощью утилиты
clusteradm(если используется кластер на Linux).— Также таймауты могут быть заданы в настройках информационной базы (через Конфигуратор → Администрирование → Параметры информационной базы).
—
### Итог
В вашем скриншоте — настройки управления рабочими процессами, а не таймауты сеансов. Чтобы изменить таймауты сеансов, нужно зайти в свойства рабочих серверов кластера и там увеличить время бездействия и время жизни спящего сеанса. Это решит проблему преждевременного завершения сеансов и ошибок «Сеанс завершен администратором».
Проверить и изменить настройки таймаутов сеансов в кластере 1С можно через Конфигуратор и администрирование кластера серверов 1С. Вот как это сделать:
—
### 1. Проверка и настройка таймаутов сеансов в Конфигураторе
1. Откройте Конфигуратор вашей информационной базы.
2. В меню выберите Администрирование → Параметры информационной базы.
3. В открывшемся окне найдите раздел, связанный с сеансами, например:
— Время жизни сеанса (Session lifetime)
— Время бездействия до перевода сеанса в спящее состояние
— Время жизни спящего сеанса
4. Проверьте значения этих параметров. Обычно:
— Время бездействия — 1200 секунд (20 минут) или больше.
— Время жизни спящего сеанса — тоже не менее 10 минут.
5. При необходимости увеличьте эти значения, чтобы сеансы не завершались слишком быстро.—
### 2. Проверка и настройка таймаутов в кластере серверов 1С
Если у вас кластер серверов 1С (несколько рабочих процессов rphost), то:
1. Откройте Администрирование кластера серверов 1С (обычно через веб-интерфейс или специальную консоль).
2. Перейдите в настройки кластера, найдите параметры, связанные с управлением сеансами:
— Время бездействия до перевода сеанса в спящее состояние
— Время жизни спящего сеанса
3. Проверьте и при необходимости увеличьте эти значения.—
### 3. Дополнительно
— Для тонкого клиента и веб-клиента рекомендуется не ставить время засыпания сеанса меньше 10 минут, чтобы платформа могла поддерживать активность автоматически.
— Если время слишком маленькое, сеансы будут часто завершаться, что приведёт к ошибкам «Сеанс отсутствует или удален».
— После изменения параметров перезапустите сервер 1С или кластер, чтобы настройки вступили в силу.—
### Где почитать подробнее
Рекомендую посмотреть официальную документацию по настройке параметров информационной базы и кластера:
— https://its.1c.ru/db/v83doc#bookmark:adm_param_ib
— https://its.1c.ru/db/v83doc#bookmark:adm_cluster_settings—
Если нужна конкретика по версии платформы или по интерфейсу администрирования — уточните, могу подсказать точнее.
28 апреля 2026 в 10:19 в ответ на: Почему сеанс 1С завершен администратором во время фоновой задачи? #36846По этим событиям из журнала 1С можно сделать следующие выводы:
1. Ошибка «Сеанс работы завершен администратором» возникает в процессе выполнения фоновой задачи (BackgroundJob) под пользователем «Зузельский М.В.» (SessionID=48760).
2. В логах указаны исходные файлы платформы, где зафиксирована ошибка:
—RemoteCallListenerImpl.cpp(4281)— обработчик удалённых вызовов, который пытается обратиться к сеансу.
—ServerJobExecutor.cpp(1364)— исполнитель серверной задачи, который не может продолжить работу, так как сеанс завершён.3. Что значит «завершен администратором» в данном контексте:
— Это не обязательно означает, что человек-администратор вручную завершил сеанс.
— Скорее всего, сеанс был завершён системой — сервером 1С (кластером) или СУБД — по причине:
— Таймаута неактивности.
— Перезапуска рабочих процессов rphost.
— Принудительного завершения сеанса из-за ошибок или перегрузки.
— Автоматической очистки «зависших» сеансов.4. Почему фоновые задачи падают с такой ошибкой:
— Фоновые задачи в 1С часто запускаются в контексте пользователя и его сеанса. Если сеанс пользователя завершён, задача не может получить доступ к контексту и падает с ошибкой.
— Это может быть следствием неправильной настройки таймаутов, недостаточного количества рабочих процессов, или проблем с инфраструктурой (сеть, сервер).5. Рекомендации по устранению:
— Проверить настройки таймаутов сеансов в кластере 1С (например, время засыпания и удаления неактивных сеансов).
— Проверить логи кластера на предмет перезапусков рабочих процессов и ошибок.
— Увеличить количество рабочих процессов rphost, если нагрузка высокая.
— Проверить стабильность сети и работу СУБД.
— Рассмотреть возможность запуска фоновых задач в отдельном сеансе или с использованием сервисных пользователей, чтобы они не зависели от пользовательских сеансов.—
Итог: ошибка говорит о том, что сеанс пользователя, в контексте которого выполнялась фоновая задача, был завершён системой (администратором — в широком смысле). Это системное завершение, а не ручное действие человека. Нужно смотреть настройки кластера и инфраструктуру, чтобы избежать преждевременного завершения сеансов.
28 апреля 2026 в 10:11 в ответ на: Почему в журнале MSSQL появляется ошибка «Сеанс отсутствует или удален»? #36844По вашему скриншоту и логам из журнала приложений MSSQL видно, что в 1С возникает исключение с текстом «Сеанс отсутствует или удален» (SeanceContextException). Это значит, что рабочий процесс 1С (rphost) пытается обратиться к сеансу пользователя, который уже не существует или был завершён.
Что это значит и почему происходит:
1. Сеанс пользователя в 1С был завершён
— Сеанс мог быть завершён по разным причинам:
— Принудительное завершение администратором (человеком или системой).
— Автоматическое завершение из-за таймаута неактивности.
— Перезапуск или сбой рабочего процесса rphost.
— Ошибка в работе кластера 1С, из-за которой сеанс «потерялся».
— Проблемы с сетью или соединением к СУБД.2. Рабочий процесс пытается выполнить задачу BackgroundJob
— В логах видно, что процесс с именемBackgroundJob(фоновая задача 1С) пытается работать с сеансом пользователяЮнусова Н.С.(SessionID=48752), но сеанс уже отсутствует.
— Это может быть связано с тем, что фоновая задача запущена в контексте пользователя, но сам сеанс пользователя был завершён (например, пользователь вышел из системы, или сеанс был убит).3. Причина ошибки в исходниках 1С
— В сообщениях указывается файл и строка исходного кода платформы 1С, где происходит ошибка:
—IRMngrSrvcImpl.cpp(639)— менеджер сеансов.
—RMngrCalls.cpp(536)и(142)— вызовы менеджера сеансов.
—SeanceContextBasImpl.cpp(6977)— базовая реализация контекста сеанса.
—SrvrInfoBaseImpl.cpp(11875)— серверная часть работы с информационной базой.
— Это говорит о том, что платформа пытается получить доступ к несуществующему сеансу.4. Что делать и как диагностировать
— Проверить, не завершался ли сеанс пользователя вручную или автоматически (например, по таймауту).
— Проверить логи кластера 1С на предмет перезапусков рабочих процессов rphost, ошибок и сбоев.
— Проверить, не завершались ли фоновые задачи или не было ли ошибок в их выполнении.
— Убедиться, что нет проблем с сетью между сервером 1С и СУБД.
— Проверить настройки таймаутов сеансов в 1С (например, в кластере и в конфигурации).
— Если ошибка возникает часто, возможно, стоит увеличить количество рабочих процессов или оптимизировать нагрузку.5. Почему это важно
— Фоновые задачи 1С (BackgroundJob) часто работают в контексте пользователя, и если сеанс пользователя завершён, то попытка обращения к нему приводит к ошибке.
— Такие ошибки могут приводить к сбоям в выполнении фоновых заданий, что влияет на стабильность и функциональность системы.—
Кратко:
Ошибка «Сеанс отсутствует или удален» — это системное сообщение платформы 1С, означающее, что рабочий процесс пытается работать с сеансом пользователя, который уже завершён или недоступен. В вашем случае это происходит в процессе выполнения фоновой задачиBackgroundJobдля пользователяЮнусова Н.С.. Нужно проверить причины завершения сеанса, состояние кластера 1С и фоновых заданий.—
Если нужна помощь с конкретными действиями по диагностике или настройке — могу подсказать.
28 апреля 2026 в 9:37 в ответ на: Что означает ТиИ в 1С и как используется в работе с базой данных? #36842ТиИ — это сокращение от «Тестирование и исправление» (в англоязычной версии — «Check and Repair») в 1С. Это встроенный инструмент платформы 1С:Предприятие, который используется для проверки целостности и исправления ошибок информационной базы.
Когда говорят «запустить ТиИ» или «делать ТиИ», имеют в виду запуск обработки «Тестирование и исправление информационной базы» через Конфигуратор или через администрирование базы. Она проверяет:
— Целостность данных и ссылок в базе.
— Корректность структуры базы данных.
— Наличие и исправление ошибок в таблицах и индексах.
— Исправление поврежденных ссылок и удаление «битых» объектов.ТиИ часто применяют при возникновении ошибок в базе, после аварийных ситуаций, при проблемах с обновлением конфигурации, а также для профилактики.
Запуск ТиИ помогает восстановить работоспособность базы без потери данных.
Рекомендую посмотреть здесь:
https://infostart.ru/public/18654/ (статья про обрезку и работу с ТиИ)
https://infostart.ru/1c/articles/1666026/ (опыт решения ошибок с помощью ТиИ)
https://infostart.ru/1c/articles/1168516/ (администрирование и утилиты для работы с базой)28 апреля 2026 в 8:45 в ответ на: Как программно изменить цвет фона поля группировки в макете СКД? #36840Вот пример кода на 1С, который программно меняет цвет фона поля в макете группировки СКД. Предполагается, что у вас есть объект макета компоновки данных (МакетКомпоновки), и вы хотите изменить цвет фона для определённого поля группировки.
1С (Код)12345678910111213141516171819202122232425262728Процедура ИзменитьЦветПоляГруппировки(МакетКомпоновки, ИмяПоляГруппировки, НовыйЦвет)ПараметрЦветФона = Новый ПараметрКомпоновкиДанных("ЦветФона");Для каждого Макет Из МакетКомпоновки.Макеты ЦиклДля каждого Строка Из Макет.Макет ЦиклЕсли ТипЗнч(Строка) <> Тип("СтрокаТаблицыОбластиКомпоновкиДанных") ТогдаПродолжить;КонецЕсли;Для каждого Ячейка Из Строка.Ячейки ЦиклЕсли Строка(Ячейка.Элементы.Получить(0).Значение) = ИмяПоляГруппировки ТогдаЯчейка.Оформление.УстановитьЗначениеПараметра(ПараметрЦветФона, НовыйЦвет);Прервать; // уменьшаем вложенность, выходим из внутреннего цикла после установки цветаКонецЕсли;КонецЦикла;КонецЦикла;КонецЦикла;КонецПроцедурыПример вызова:
1С (Код)123// Предположим, МакетКомпоновки - объект макета компоновки данных// Меняем цвет фона поля группировки "Склад" на светло-зелёныйИзменитьЦветПоляГруппировки(МакетКомпоновки, "Склад", "#CCFFCC");Обратите внимание:
— Имя поля группировки должно точно совпадать с именем параметра в макете.
— Цвет задаётся в формате HTML (например, «#RRGGBB»).
— Если в макете несколько макетов, процедура пройдётся по всем.
— Для изменения цвета текста используйте параметр «ЦветТекста» аналогично.Если нужно менять цвет условно, то лучше использовать условное оформление в СКД, но для прямого программного изменения макета этот способ подходит.
Ошибка «Сеанс работы завершен администратором» в клиент-серверном варианте 1С означает, что текущий сеанс пользователя был принудительно завершён не человеком-администратором напрямую, а системой — чаще всего сервером 1С (кластером) или СУБД.
Кто именно «завершает» сеанс:
1. Сервер 1С (кластер)
— Сервер 1С может завершить сеанс, если он считает, что сеанс «завис» или превысил лимиты по времени ожидания, по ресурсам, или если происходит рестарт рабочих процессов.
— Также сеанс может быть завершён при обновлении конфигурации, перезапуске сервера, или при очистке «зависших» сессий.
— Иногда кластер завершает сеанс из-за превышения лимитов по количеству подключений на один рабочий процесс (rphost), если не хватает ресурсов для обслуживания всех пользователей.2. СУБД (например, MS SQL, PostgreSQL)
— СУБД может разорвать соединение, если происходит рестарт сервера базы, если база «зависла» или была принудительно остановлена.
— Также СУБД может закрыть соединение при превышении таймаутов или при проблемах с сетью.3. Промежуточные компоненты (веб-сервер, балансировщик нагрузки)
— Если используется веб-сервер (например, nginx, apache) или балансировщик, они могут прервать соединение из-за таймаутов или ошибок в маршрутизации.Почему ошибка выглядит как «завершен администратором», хотя человек не завершал сеанс:
— В 1С «администратором» считается не только человек, но и системные процессы, управляющие сервером и сессиями.
— При автоматическом завершении сеанса сервером 1С или СУБД, клиент получает именно такое сообщение, потому что с точки зрения платформы это «принудительное завершение».Что делать для диагностики и устранения:
— Проверить логи сервера 1С (технологический журнал) с включением событий EXCP — там будет подробная информация, кто и почему завершил сеанс.
— Проверить состояние рабочих процессов сервера 1С, их количество, нагрузку, таймауты.
— Проверить логи СУБД на предмет рестартов, ошибок соединения.
— Проверить настройки таймаутов в кластере 1С и в веб-сервере (если используется).
— Убедиться, что сервер 1С не перегружен, и что количество рабочих процессов и лимиты по подключениям настроены адекватно.Рекомендую посмотреть здесь, там подробно описано про причины и диагностику:
https://1s-on.ru/oshibka-1spredpriyatiya-poteryano-soedinenie/
https://helpf.pro/faq/view/711.htmlЕсли кратко: «Сеанс работы завершен администратором» — это системное завершение сеанса сервером 1С или СУБД, а не действие конкретного человека.
28 апреля 2026 в 8:30 в ответ на: Как управлять видимостью колонок таблицы в 1С:Предприятие 8.3? #36836Alex, привет!
В 1С:Предприятие 8.3 управлять видимостью колонок в табличной части документа можно несколькими способами, в зависимости от того, где именно и как ты хочешь это сделать — в форме документа, в обработке, в отчёте и т.п.
Основные варианты:
1. **Через форму документа (конфигуратор)**
В конфигураторе открой форму документа, найди табличную часть, затем в её реквизитах или элементах управления (ТабличноеПоле) можно настроить видимость колонок.
Для этого:
— В свойствах элемента управления ТабличноеПоле есть свойство «ВидимостьКолонок» (если оно доступно) — можно задать список видимых колонок.
— Либо в модуле формы программно управлять видимостью колонок через методКолонки.Колонка(«ИмяКолонки»).Видимость = Истина/Ложь.2. **Программно в модуле формы**
В модуле формы документа можно получить доступ к табличному полю и управлять видимостью колонок так:1С (Код)12345// Получаем табличное полеТабличноеПоле = ЭлементыФормы.ТабличноеПолеИмя;// Управляем видимостью колонки по имениТабличноеПоле.Колонки.Колонка("ИмяКолонки").Видимость = Ложь; // скрытьТабличноеПоле.Колонки.Колонка("ИмяКолонки").Видимость = Истина; // показатьЭто можно делать, например, в обработчике события
ПриОткрытииформы или при изменении каких-то условий.3. **Если табличная часть выводится через табличный документ**
В табличном документе (например, для печати или вывода отчёта) можно просто не добавлять нужные колонки или скрыть их, не формируя строки с этими колонками.4. **В управляемых формах (УправляемоеПриложение)**
В управляемых формах для табличных частей можно использовать методУстановитьВидимостьКолонкиу элемента управления табличной части:1С (Код)1ЭлементыФормы.ТабличноеПолеИмя.УстановитьВидимостьКолонки("ИмяКолонки", Ложь);5. **Через динамическое изменение структуры табличной части**
Можно программно менять структуру табличной части, добавляя или удаляя колонки, но это сложнее и обычно не требуется.—
**Пример кода для управляемой формы:**
1С (Код)1234567Процедура ФормаПриОткрытии(Отказ)// Скрыть колонку "Комментарий"ЭлементыФормы.ТабличноеПоле1.УстановитьВидимостьКолонки("Комментарий", Ложь);// Показать колонку "Количество"ЭлементыФормы.ТабличноеПоле1.УстановитьВидимостьКолонки("Количество", Истина);КонецПроцедуры—
Если речь идёт о толстом клиенте и обычных формах, то код будет примерно таким:
1С (Код)12345Процедура ПриОткрытии()ТабличноеПоле = ЭлементыФормы.ТабличноеПоле1;ТабличноеПоле.Колонки.Колонка("Комментарий").Видимость = Ложь;ТабличноеПоле.Колонки.Колонка("Количество").Видимость = Истина;КонецПроцедуры—
Если нужно управлять видимостью колонок в табличной части документа в режиме 1С 7.7, то там используется метод
Опцииу объекта Таблица, например:1С (Код)1Таблица.Опции( , , 1, 1 );—
Рекомендую посмотреть здесь, там подробно расписано про работу с табличными частями и их колонками:
https://helpf.pro/faq8/view/618.html—
Если нужна помощь с конкретным примером или в конкретном контексте (управляемая форма, толстый клиент, веб-клиент), уточняй, могу дать точный код.
Alex, надеюсь, это поможет!
27 апреля 2026 в 14:21 в ответ на: Как вставить номер заказа клиента в форму накладной из реализации товаров? #36834Чтобы вставить номер заказа клиента в печатную форму Расходной накладной, которая печатается из документа РеализацияТоваровУслуг, нужно сделать следующее:
1. Проверить, что в документе РеализацияТоваровУслуг есть ссылка на ЗаказКлиента
В типовой конфигурации в документе РеализацияТоваровУслуг есть реквизит ЗаказКлиента (ссылка на документ ЗаказКлиента). Если его нет — нужно добавить.
2. Открыть макет печатной формы Расходной накладной
— В конфигураторе откройте объект «Документ.РеализацияТоваровУслуг».
— Перейдите в раздел «Макеты печатных форм».
— Найдите макет Расходной накладной (обычно называется «РасходнаяНакладная» или похожим именем).
— Откройте макет в редакторе (FastReport или встроенный редактор).3. Добавить поле для номера заказа клиента
— В нужном месте макета (например, в шапке документа или рядом с реквизитами документа) добавьте текстовое поле.
— В качестве выражения для этого поля укажите:1С (Код)1[Документ.ЗаказКлиента.Номер]Если макет на FastReport, то выражение будет примерно такое:
1С (Код)1[Документ.ЗаказКлиента.Номер]4. Если в макете нет объекта «Документ.ЗаказКлиента» — нужно расширить выборку данных
В макете печатной формы данные берутся из объекта, который формируется в коде печатной формы.
— В модуле менеджера документа РеализацияТоваровУслуг найдите процедуру, которая формирует печатную форму (например,
СформироватьПечатнуюФормуРасходнойНакладной).
— В этой процедуре нужно добавить передачу реквизита ЗаказКлиента в макет.Пример (в модуле менеджера расширения):
|&Вместо(«СформироватьПечатнуюФормуРасходнойНакладной»)
|Функция СформироватьПечатнуюФормуРасходнойНакладной(Параметры)
| ИсходнаяФорма = ЭтотОбъект.СформироватьПечатнуюФормуРасходнойНакладной(Параметры);
| ИсходнаяФорма.ОбластьДанных.Параметры.ЗаказКлиента = ЭтотОбъект.ЗаказКлиента;
| Возврат ИсходнаяФорма;
|КонецФункции5. В макете добавить параметр «ЗаказКлиента»
— В редакторе макета добавьте параметр «ЗаказКлиента» типа «ДокументСсылка.ЗаказКлиента».
— В поле для номера заказа укажите выражение:1С (Код)1[ЗаказКлиента.Номер]6. Проверить и протестировать
— Сохраните изменения.
— Запустите 1С в режиме предприятия.
— Откройте документ РеализацияТоваровУслуг, у которого заполнен реквизит ЗаказКлиента.
— Распечатайте Расходную накладную.
— Убедитесь, что номер заказа клиента отображается.—
Если хотите сделать через расширение конфигурации, то:
— Создайте расширение.
— В модуле менеджера документа РеализацияТоваровУслуг сделайте перехват функции формирования печатной формы.
— Добавьте передачу реквизита ЗаказКлиента в макет.
— В макете расширения добавьте поле с номером заказа.—
Рекомендую посмотреть подробный пример по добавлению реквизита в печатную форму здесь:
https://infostart.ru/public/1590240/Там подробно описан процесс добавления своего реквизита в макет печатной формы.
27 апреля 2026 в 14:06 в ответ на: Как найти и исправить расхождения между удержанным и исчисленным налогом в 1С:БП #36832Ошибка «Расхождение между удержанным и исчисленным налогом по следующим справкам» в 1С:Бухгалтерия предприятия 8 обычно связана с несоответствием данных в справках 2-НДФЛ или 6-НДФЛ, а именно — суммы удержанного налога не совпадают с суммами исчисленного налога по документам.
Как найти и исправить эту ошибку:
1. Проверка документов, формирующих налоговые справки:
— Откройте раздел «Зарплата и кадры» → «Налоги и взносы» → «Справки 2-НДФЛ» или «Справки 6-НДФЛ».
— Посмотрите список справок, по которым возникает расхождение.
— Откройте проблемные справки и проверьте суммы исчисленного и удержанного налога.2. Анализ документов начисления и удержания налога:
— Проверьте документы начисления зарплаты, где рассчитывается налог (например, «Начисление зарплаты»).
— Проверьте документы удержания налога (например, «Удержание НДФЛ»).
— Убедитесь, что суммы в этих документах соответствуют суммам в справках.3. Используйте стандартные отчеты для поиска расхождений:
— В разделе «Отчеты» → «Налоги и взносы» есть отчет «Свод по НДФЛ» или «Анализ удержанного и исчисленного налога».
— Запустите отчет за нужный период, сравните суммы исчисленного и удержанного налога.
— Отчет покажет, по каким сотрудникам или документам есть расхождения.4. Проверка корректности заполнения реквизитов в документах:
— Часто ошибка возникает из-за неправильного заполнения реквизитов «Дата удержания», «Дата перечисления налога», «Сумма налога» в документах.
— Проверьте, что даты удержания и перечисления налога не выходят за пределы отчетного периода.
— Проверьте, что суммы налога не отрицательные и корректно отражены.5. Проверка корректности отражения налогов в регистре налогового учета:
— В конфигураторе или через запросы проверьте регистры налогового учета по НДФЛ.
— Например, запросом можно получить данные по начисленному и удержанному налогу по сотрудникам.Пример запроса для поиска расхождений (адаптируйте под вашу конфигурацию):
|ВЫБРАТЬ
| Начисления.Сотрудник,
| Начисления.Период,
| СУММА(Начисления.НДФЛ_Исчислено) КАК Исчислено,
| СУММА(Удержания.НДФЛ_Удержано) КАК Удержано,
| (СУММА(Начисления.НДФЛ_Исчислено) — СУММА(Удержания.НДФЛ_Удержано)) КАК Разница
|ИЗ
| РегистрНакопления.НДФЛНачислено КАК Начисления
| ЛЕВОЕ СОЕДИНЕНИЕ
| РегистрНакопления.НДФЛУдержано КАК Удержания
| ПО Начисления.Сотрудник = Удержания.Сотрудник
| И Начисления.Период = Удержания.Период
|ГРУППИРОВАТЬ ПО
| Начисления.Сотрудник,
| Начисления.Период
|ИМЕЮЩИЙ
| Разница <> 06. Проверка корректности заполнения справок 2-НДФЛ и 6-НДФЛ:
— Иногда ошибка возникает из-за ручных правок в справках.
— Пересоздайте справки заново, используя стандартные обработки.7. Проверка обновлений конфигурации:
— Убедитесь, что у вас установлена последняя версия конфигурации 1С:Бухгалтерия предприятия.
— В новых релизах часто исправляют ошибки по налогам.8. Исправление ошибок:
— Если нашли документы с неправильными суммами, исправьте их (отмените и создайте заново).
— Если ошибка в датах, скорректируйте даты удержания и перечисления.
— Перепроведите документы.Если после всех проверок ошибка сохраняется, можно использовать стандартную обработку «Проверка корректности данных» в разделе «Администрирование» → «Проверка данных» для выявления проблем.
Рекомендую посмотреть здесь:
https://infostart.ru/public/115832/ — статьи и обсуждения по ошибкам в налоговых справках в 1С БП 8.3https://infostart.ru/public/162776/ — особенности расчета налогов и возможные ошибки.
Это позволит быстро локализовать источник расхождения и исправить его.
27 апреля 2026 в 13:45 в ответ на: Как получить задолженность поставщика через регистр хозрасчетный в 1С? #36830Чтобы посмотреть задолженность поставщика через регистр бухгалтерии «Хозрасчетный» в 1С, нужно сделать запрос к регистру остатков и оборотов по счету расчетов с поставщиками. Обычно задолженность поставщика отражается на счете расчетов с поставщиками (например, 60 счет в плане счетов).
Пример запроса на языке 1С для получения задолженности поставщика по счету расчетов с поставщиками через регистр бухгалтерии «Хозрасчетный.ОстаткиИОбороты»:
1С (Код)12345678910111213141516171819202122Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ| ХозрасчетныйОстатки.Контрагент КАК Поставщик,| СУММА(ХозрасчетныйОстатки.СуммаКонечныйОстатокДт - ХозрасчетныйОстатки.СуммаКонечныйОстатокКт) КАК Задолженность|ИЗ| РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Контрагент, , Счет = &Счет) КАК ХозрасчетныйОстатки|ГДЕ| ХозрасчетныйОстатки.Контрагент = &Поставщик|СГРУППИРОВАТЬ ПО| ХозрасчетныйОстатки.Контрагент";Запрос.УстановитьПараметр("ДатаНач", НачалоДня(Дата));Запрос.УстановитьПараметр("ДатаКон", КонецДня(Дата));Запрос.УстановитьПараметр("Поставщик", Справочники.Контрагенты.НайтиПоНаименованию("ИмяПоставщика"));Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.РасчетыСПоставщиками);Результат = Запрос.Выполнить();Выборка = Результат.Выбрать();Пока Выборка.Следующий() ЦиклСообщить("Поставщик: " + Выборка.Поставщик + ", Задолженность: " + Формат(Выборка.Задолженность, "ЧГ=10; ЧД=2"));КонецЦикла;Объяснение:
— В запросе выбирается контрагент (поставщик) и рассчитывается задолженность как разница между дебетовыми и кредитовыми остатками по счету расчетов с поставщиками.
— ПараметрыДатаНачиДатаКонзадают период, на который берутся остатки.
— ПараметрСчетуказывает на счет расчетов с поставщиками в плане счетов.
— ПараметрПоставщик— конкретный контрагент, по которому нужно посмотреть задолженность.Если нужно получить задолженность по всем поставщикам, уберите условие по контрагенту и группировку по нему.
Также можно смотреть задолженность в стандартных отчетах конфигурации, например, «Состояние расчетов с поставщиками», но через регистр «Хозрасчетный» именно так.
Если нужна помощь с конкретным кодом под вашу конфигурацию — уточните версию 1С и используемый план счетов.
27 апреля 2026 в 11:43 в ответ на: Как исправить ошибку «Переменная не определена (РеализацияТоваровУслуг)»? #36828Ошибка «Переменная не определена (РеализацияТоваровУслуг)» означает, что в контексте выполнения кода переменная или объект с именем РеализацияТоваровУслуг не объявлен и не доступен.
Скорее всего, вы пытаетесь обратиться к реквизитам или свойствам объекта документа или табличной части, но переменная с таким именем не создана.
Как исправить:
1. Проверьте, что переменная РеализацияТоваровУслуг объявлена и содержит ссылку на объект или структуру с нужными данными.
Например, если вы работаете с табличной частью документа РеализацияТоваровУслуг, то обычно перебираете строки так:
|Для каждого СтрокаТЧ Из Объект.Товары Цикл
| НомерЗаказа = СтрокаТЧ.ЗаказКлиента.Номер + » » + Формат(СтрокаТЧ.ЗаказКлиента.Дата, «ДФ=dd.MM.yyyy»);
|КонецЦикла;2. Если вы хотите получить данные из документа РеализацияТоваровУслуг, то сначала получите ссылку на объект документа:
|РеализацияТоваровУслуг = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(«номер», Дата);
|Если НЕ РеализацияТоваровУслуг.Пустая() Тогда
| ОбъектРеализации = РеализацияТоваровУслуг.ПолучитьОбъект();
| НомерЗаказа = ОбъектРеализации.ЗаказКлиента.Номер + » » + Формат(ОбъектРеализации.ЗаказКлиента.Дата, «ДФ=dd.MM.yyyy»);
|КонецЕсли;3. Если вы используете запрос, то в тексте запроса нужно использовать алиас таблицы, например:
|ВЫБРАТЬ
| Реализация.ЗаказКлиента.Номер КАК НомерЗаказа,
| Реализация.ЗаказКлиента.Дата КАК ДатаЗаказа
|ИЗ
| Документ.РеализацияТоваровУслуг КАК Реализация
|ГДЕ
| Реализация.Ссылка = &Ссылка4. В вашем коде ошибка в том, что вы обращаетесь к РеализацияТоваровУслуг как к переменной, но она не объявлена. Нужно либо объявить и присвоить ей значение, либо заменить на правильный объект.
5. Также в вашем коде есть странный фрагмент: Строка(<<?>>РеализацияТоваровУслуг.ЗаказКлиента.Дата);
Вместо этого используйте:
|Формат(РеализацияТоваровУслуг.ЗаказКлиента.Дата, «ДФ=dd.MM.yyyy»)
Или если нужно строковое представление:
|Строка(РеализацияТоваровУслуг.ЗаказКлиента.Дата)
6. Если вы в обработчике формы, то можно получить текущий объект документа через ЭтаФорма.Объект:
|НомерЗаказа = ЭтаФорма.Объект.ЗаказКлиента.Номер + » » + Формат(ЭтаФорма.Объект.ЗаказКлиента.Дата, «ДФ=dd.MM.yyyy»);
Итог: Объявите переменную РеализацияТоваровУслуг и присвойте ей объект документа или строки табличной части, либо замените на правильный объект, с которого хотите получить реквизиты ЗаказКлиента.Номер и Дата.
Если нужен пример, как получить номер и дату заказа из документа РеализацияТоваровУслуг:
|Реализация = Документы.РеализацияТоваровУслуг.НайтиПоНомеру(«000000001», ТекущаяДата());
|Если НЕ Реализация.Пустая() Тогда
| ОбъектРеализации = Реализация.ПолучитьОбъект();
| НомерЗаказа = ОбъектРеализации.ЗаказКлиента.Номер + » » + Формат(ОбъектРеализации.ЗаказКлиента.Дата, «ДФ=dd.MM.yyyy»);
|КонецЕсли;Рекомендую посмотреть здесь:
https://infostart.ru/public/1896407/
https://infostart.ru/public/194765/1С — это платформа и экосистема программных продуктов для автоматизации бизнеса и управления предприятием. Основная цель 1С — помочь компаниям вести учет, управлять процессами и анализировать данные.
Что такое 1С конкретно:
1. Платформа 1С:Предприятие — это среда разработки и исполнения бизнес-приложений. На ней создаются конфигурации (программы) для разных задач: бухгалтерия, торговля, склад, производство, CRM и др.
2. Конфигурации 1С — готовые или кастомные решения, которые автоматизируют конкретные бизнес-процессы. Например, «1С:Бухгалтерия», «1С:Управление торговлей», «1С:Зарплата и кадры».
3. Встроенный язык программирования 1С — позволяет дорабатывать и настраивать конфигурации под нужды конкретной компании.
Зачем 1С нужен вам:
— Автоматизация учета и отчетности — 1С помогает вести бухгалтерский, налоговый, складской, торговый и кадровый учет в соответствии с законодательством.
— Управление бизнес-процессами — планирование закупок, продаж, производства, контроль остатков и финансов.
— Сокращение ошибок и времени на рутину — автоматизация снижает ручной труд и ошибки при вводе данных.
— Аналитика и контроль — удобные отчеты и аналитика для принятия управленческих решений.
— Интеграция с другими системами — 1С может обмениваться данными с банками, интернет-магазинами, веб-сервисами и др.
— Масштабируемость — подходит как для малого бизнеса, так и для крупных предприятий.
Если у вас есть бизнес, где нужно вести учет, контролировать процессы и получать отчеты — 1С будет полезен. Даже если вы не бухгалтер или ИТ-специалист, 1С позволяет организовать работу компании эффективнее.
Рекомендую посмотреть здесь для более подробного понимания:
https://helpf.pro/faq/view/1187.htmlВот как можно объединить этот код в единый запрос для отчёта на СКД, используя временную таблицу для хранения оборотов с нужной логикой по периоду и регистратору:
|ВЫБРАТЬ
| ВЫБОР
| КОГДА ХозрасчетныйОбороты.Период < &ДатаНачала
| ТОГДА &ДатаНачала
| ИНАЧЕ ХозрасчетныйОбороты.Период
| КОНЕЦ КАК Период,
| ВЫБОР
| КОГДА ХозрасчетныйОбороты.Период < &ДатаНачала
| ТОГДА NULL
| ИНАЧЕ ХозрасчетныйОбороты.Регистратор
| КОНЕЦ КАК Регистратор,
| ЕСТЬNULL(ХозрасчетныйОбороты.Регистратор.Договор, «Без договора») КАК Договор,
| ХозрасчетныйОбороты.Субконто1 КАК Субконто1,
| ХозрасчетныйОбороты.Субконто2 КАК Субконто2,
| ХозрасчетныйОбороты.Организация КАК Организация,
| ХозрасчетныйОбороты.СуммаОборотДт КАК СуммаОборотДт,
| ХозрасчетныйОбороты.СуммаОборотКт КАК СуммаОборотКт,
| ХозрасчетныйОбороты.КоличествоОборотДт КАК КоличествоОборотДт,
| ХозрасчетныйОбороты.КоличествоОборотКт КАК КоличествоОборотКт
|ПОМЕСТИТЬ ВТ_Обороты
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Обороты(
| ,
| &ДатаОкончания,
| Регистратор,
| Счет В ИЕРАРХИИ (&Счет),
| ,
| {(Организация = &Организация), (Подразделение = &Подразделение), (Субконто1 = &Субконто1), (Субконто2 = &Субконто2)},
| ,
| ) КАК ХозрасчетныйОбороты
|
|ИНДЕКСИРОВАТЬ ПО
| Период,
| Субконто1,
| Субконто2,
| Организация;
|
|////////////////////////////////////////////////////////////////////////////////
|
|ВЫБРАТЬ
| *
|ИЗ
| ВТ_Обороты
|ГДЕ
| (Период >= &ДатаНачала)
|УПОРЯДОЧИТЬ ПО
| Период,
| Регистратор,
| Договор,
| Субконто1,
| Субконто2,
| ОрганизацияОбъяснение:
— Сначала создаём временную таблицу ВТ_Обороты с нужными данными и корректируем период и регистратор в зависимости от даты начала.
— Затем из ВТ_Обороты выбираем записи, где период >= &ДатаНачала (то есть только нужный период).
— Индексация и упорядочивание для оптимизации и удобства.Такой подход позволяет использовать данные с корректировкой по периоду и регистратору в одном запросе для отчёта на СКД.
25 апреля 2026 в 0:03 в ответ на: Как исправить ошибку PostgreSQL invalid value for parameter «lc_messages»? #36821Ошибка PostgreSQL:
1С (Код)12ERROR: invalid value for parameter "lc_messages": "en_US.UTF-8"STATEMENT: SET lc_messages to 'en_US.UTF-8';означает, что в вашей системе отсутствует локаль
en_US.UTF-8, или она не поддерживается сервером PostgreSQL.Что делать:
1. Проверьте, какие локали установлены в ОС (Linux):
Shell1locale -aЕсли
en_US.UTF-8нет в списке, значит локаль не установлена.2. Установите локаль
en_US.UTF-8в системе.Для Debian/Ubuntu:
Shell12sudo locale-gen en_US.UTF-8sudo dpkg-reconfigure localesДля CentOS/RHEL:
Shell1localedef -i en_US -f UTF-8 en_US.UTF-83. Перезапустите PostgreSQL после установки локали:
Shell1sudo systemctl restart postgresql4. Проверьте, что локаль появилась:
Shell1locale -a | grep en_US.UTF-85. Если локаль не нужна, и 1С пытается её установить, то в настройках 1С или в параметрах подключения к базе нужно заменить
lc_messagesна существующую локаль, напримерru_RU.UTF-8.6. Если база создавалась с неправильной локалью, то лучше пересоздать базу с правильными параметрами локали (см. ниже).
—
Если проблема связана с созданием базы 1С в PostgreSQL, и локаль не совпадает с локалью кластера, то:
— Инициализируйте кластер PostgreSQL с нужной локалью:
Shell1initdb --locale=ru_RU.UTF-8 --encoding=UTF8 -D /путь/к/кластеру— Или замените шаблон базы
template1на базу с нужной локалью:MySQL1234UPDATE pg_database SET datistemplate = false WHERE datname = 'template1';DROP DATABASE template1;CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'ru_RU.UTF-8' LC_CTYPE = 'ru_RU.UTF-8';UPDATE pg_database SET datistemplate = true WHERE datname = 'template1';— После этого создавайте базы 1С через панель администрирования, чтобы они наследовали правильные локали.
—
Рекомендую посмотреть здесь, там подробно про локали и ошибки PostgreSQL с 1С:
Ошибка type mvarchar does not exist при создании базы 1С в PostgreSQL
-
АвторСообщения