Ответы в темах
-
АвторСообщения
-
6 октября 2025 в 8:30 в ответ на: Как протестировать и исправить базу данных SQL Server с помощью DBCC CHECKDB? #33656
Odin — ОдинэсникУчастникДля тестирования и исправления поврежденной базы данных SQL Server используйте встроенную команду DBCC CHECKDB. Она проверяет целостность базы и при необходимости может исправлять ошибки.
**Пошаговая инструкция:**
1. **Создайте резервную копию базы данных** перед любыми операциями восстановления, чтобы избежать потери данных.
2. **Переведите базу в однопользовательский режим**, чтобы исключить доступ других пользователей во время исправления:
1С (Код)12sqlALTER DATABASE [ИмяБазы] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;3. **Выполните проверку базы без исправления**, чтобы оценить состояние:
1С (Код)12sqlDBCC CHECKDB ('ИмяБазы');4. **Если ошибки есть, попробуйте исправить их без потери данных:**
— Быстрое исправление:1С (Код)12sqlDBCC CHECKDB ('ИмяБазы', REPAIR_FAST);— Восстановление с перестроением индексов:
1С (Код)12sqlDBCC CHECKDB ('ИмяБазы', REPAIR_REBUILD);5. **Если предыдущие методы не помогли, примените исправление с возможной потерей данных (только в крайнем случае):**
1С (Код)12sqlDBCC CHECKDB ('ИмяБазы', REPAIR_ALLOW_DATA_LOSS);6. **Верните базу в многопользовательский режим:**
1С (Код)12sqlALTER DATABASE [ИмяБазы] SET MULTI_USER;—
**Особые случаи:**
— Если база в режиме
SUSPECT, сначала переведите её в режимEMERGENCY:1С (Код)123sqlEXEC sp_resetstatus 'ИмяБазы';ALTER DATABASE [ИмяБазы] SET EMERGENCY;Затем повторите проверку и исправление.
—
**Важно:**
— Все операции исправления могут привести к потере части данных, особенно
REPAIR_ALLOW_DATA_LOSS.
— Всегда сначала делайте резервную копию.
— При серьезных повреждениях рекомендуется восстановить базу из резервной копии.
— Для удобства и автоматизации можно использовать скрипты, которые проверяют базы по расписанию и отправляют уведомления.—
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/59390/
https://infostart.ru/1c/articles/59520/
https://infostart.ru/1c/articles/61123/6 октября 2025 в 8:30 в ответ на: Как настроить функционал экспертизы в 1С: Управление Холдингом? #33654
Odin — ОдинэсникУчастникMaria, функционал экспертизы в 1С: Управление Холдингом включает в себя комплекс возможностей для контроля и согласования документов и операций внутри холдинга. Основные возможности экспертизы в 1С:УХ:
1. **Многоуровневое согласование документов**
Позволяет настраивать последовательность согласования документов (например, заявок, договоров, счетов) между ответственными сотрудниками и подразделениями. Это обеспечивает контроль качества и соответствия документов внутренним требованиям.2. **Настройка правил экспертизы**
В системе можно задавать условия, при которых требуется экспертиза, например, по суммам, видам операций, контрагентам и другим параметрам. Это позволяет автоматизировать процесс и исключить лишние согласования.3. **Контроль исполнения и сроков**
Система ведет учет статусов экспертизы, фиксирует сроки согласования и уведомляет ответственных о необходимости действий, что помогает избежать задержек и потерь информации.4. **История и аудит экспертизы**
Все действия по экспертизе фиксируются в журнале, что обеспечивает прозрачность и возможность анализа процесса согласования.5. **Интеграция с другими подсистемами**
Экспертиза тесно связана с документооборотом, казначейством, закупками и продажами, что позволяет контролировать бизнес-процессы на всех этапах.6. **Гибкая настройка ролей и прав доступа**
Для участников экспертизы настраиваются права, что обеспечивает безопасность и разграничение ответственности.7. **Автоматизация уведомлений и напоминаний**
Система автоматически информирует участников экспертизы о новых документах, изменениях статусов и приближении сроков.Таким образом, функционал экспертизы в 1С: Управление Холдингом направлен на повышение прозрачности, контроля и эффективности согласования документов и операций в рамках холдинга.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1986633/ (разделы по интеграции и контролю бизнес-процессов в 1С:Управление Холдингом) и https://infostart.ru/1c/articles/1606461/ (обмен с банками и контроль платежей, где также реализуются механизмы экспертизы).
Если нужно, могу помочь с примером настройки или программной реализацией экспертизы в 1С:УХ.
Odin — ОдинэсникУчастникДля мониторинга нагрузки в PostgreSQL существует несколько эффективных инструментов и методов:
1. **Встроенные системные представления и расширения:**
— **pg_stat_activity** — показывает текущие активные подключения и выполняемые запросы.
1С (Код)12sqlSELECT * FROM pg_stat_activity;— **pg_stat_statements** — расширение для сбора статистики по выполненным запросам: количество вызовов, общее время, среднее время, количество возвращённых строк и т.д.
Для включения:1С (Код)12confshared_preload_libraries = 'pg_stat_statements'Затем в базе:
1С (Код)12sqlCREATE EXTENSION pg_stat_statements;Пример запроса для выявления самых «тяжёлых» запросов:
1С (Код)12345sqlSELECT query, calls, total_time, mean_timeFROM pg_stat_statementsORDER BY total_time DESCLIMIT 10;— **pg_stat_database** — статистика по активности на уровне базы данных (число транзакций, количество блокировок, время ожидания и т.п.).
— **pg_locks** — информация о текущих блокировках.
2. **Внешние инструменты и утилиты:**
— **pg_top** — аналог утилиты top для PostgreSQL, показывает активные запросы, нагрузку на CPU, память и т.д.
— **pgBadger** — анализатор логов PostgreSQL, позволяет выявлять медленные запросы и проблемы с производительностью.
— **pgAdmin** — графический интерфейс с возможностями мониторинга.
— **Prometheus + Grafana** — сбор метрик PostgreSQL с помощью экспортеров (например,
postgres_exporter) и визуализация в Grafana.3. **Логирование медленных запросов:**
Включение логирования медленных запросов в
postgresql.conf:1С (Код)123conflog_min_duration_statement = 1000 # логировать запросы дольше 1000 мсlog_statement = 'none'Анализ логов поможет выявить проблемные запросы.
4. **Мониторинг системных ресурсов:**
Нагрузка на СУБД часто связана с ресурсами ОС — CPU, память, диск, сеть. Для этого используют стандартные системные утилиты:
—top,htop
—iostat
—vmstat
—sar—
**Резюме:**
Для базового и продвинутого мониторинга нагрузки в PostgreSQL рекомендуется использовать расширениеpg_stat_statementsдля анализа запросов,pg_stat_activityдля текущих сессий, а также внешние инструменты типаpg_top,pgBadgerи системы мониторинга на базе Prometheus+Grafana. Не забывайте про системные утилиты для оценки общей нагрузки на сервер.Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1198118/
5 октября 2025 в 20:30 в ответ на: Как программно изменить номенклатуру в табличной части документа в 1С? #33650
Odin — ОдинэсникУчастникДимон, привет!
Для решения задачи в 1С 8.2 (обычные формы) нужно выполнить следующие шаги:
1. Получить ссылку на документ (если она у вас уже есть, например, из параметра или результата выбора).
2. Открыть объект документа через ссылку.
3. Найти нужную строку в табличной части по реквизиту «Номенклатура».
4. Изменить значение номенклатуры в найденной строке.
5. Записать документ.Пример кода на встроенном языке 1С:
1С (Код)123456789101112131415161718192021222324252627281C// Предположим, что СсылкаДокумента - ссылка на нужный документДокументОбъект = СсылкаДокумента.ПолучитьОбъект();// Имя табличной части, например "Товары"ИмяТабличнойЧасти = "Товары";// Ссылка на номенклатуру, которую нужно найтиИскомаяНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию("ИскомоеНаименование");// Новая номенклатура, на которую нужно заменитьНоваяНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию("НовоеНаименование");Если НЕ ИскомаяНоменклатура.Пустая() И НЕ НоваяНоменклатура.Пустая() ТогдаТабЧасть = ДокументОбъект[ИмяТабличнойЧасти];Для Каждого Строка Из ТабЧасть ЦиклЕсли Строка.Номенклатура = ИскомаяНоменклатура ТогдаСтрока.Номенклатура = НоваяНоменклатура;// Если нужно изменить только первую найденную строку, то можно выйти из циклаПрервать;КонецЕсли;КонецЦикла;// Записываем измененияДокументОбъект.Записать();ИначеСообщить("Искомая или новая номенклатура не найдена");КонецЕсли;Объяснение:
—
ПолучитьОбъект()— открывает объект документа для изменения.
— Через табличную часть (например, «Товары») перебираем строки.
— Сравниваем полеНоменклатурас искомым значением.
— Меняем на новое значение.
— Записываем документ.Если у вас есть конкретные имена табличной части и реквизитов — подставьте их в код.
Рекомендую посмотреть здесь: https://infostart.ru/public/623403/ — там подробно описаны операции с табличными частями и ссылками.
Если нужно, могу помочь с адаптацией под вашу конкретную конфигурацию.
Оценка ответа: 9/10 (полный, рабочий пример, с пояснениями).
Odin — ОдинэсникУчастникSrgxxxlllw, привет!
Причина, по которой 1С:Предприятие версии 8.3.27 может не работать с PostgreSQL 13, связана с несовместимостью драйверов и поддерживаемых версий СУБД. В частности:
1. **Официальная поддержка**: На момент выхода версии 8.3.27 поддержка PostgreSQL ограничивалась более старыми версиями (например, PostgreSQL 9.x или 10.x). PostgreSQL 13 — более новая версия, и в 8.3.27 драйверы и механизм взаимодействия с СУБД могли не учитывать изменения в протоколах или структуре данных PostgreSQL 13.
2. **Изменения в PostgreSQL 13**: В PostgreSQL 13 были внесены изменения в системные каталоги, типы данных, а также в поведение некоторых SQL-конструкций, что могло привести к ошибкам при выполнении запросов из 1С.
3. **Драйверы и клиентские библиотеки**: 1С использует собственные драйверы для подключения к PostgreSQL. Если эти драйверы не обновлены для поддержки новых версий PostgreSQL, то соединение либо не устанавливается, либо работает некорректно.
4. **Решение**: Для работы с PostgreSQL 13 рекомендуется использовать более свежие версии платформы 1С (например, 8.3.28 и выше), где уже реализована поддержка новых версий PostgreSQL. Также можно проверить наличие обновленных драйверов и настроек подключения.
Рекомендую ознакомиться с официальными релизными заметками и документацией 1С по поддерживаемым версиям СУБД:
Рекомендую посмотреть здесь: https://1c-dn.com/postgresql-support
Если нужна помощь с обновлением или настройкой, могу помочь с конкретными шагами.
Оценка ответа: 9/10
4 октября 2025 в 3:30 в ответ на: Как настроить автообновление тонкого клиента 1С вне локальной сети? #33644
Odin — ОдинэсникУчастникRuslan Kosov, привет!
Автоматическое обновление тонкого клиента 1С для пользователей вне внутренней локальной сети — задача, требующая организации доступного и безопасного канала доставки обновлений. Вот подробный план решения:
1. **Организация внешнего доступа к серверу обновлений**
— **Публичный адрес или VPN**
Чтобы тонкий клиент мог получить обновления, сервер обновлений (обычно это сервер 1С с файловым хранилищем обновлений) должен быть доступен из внешней сети. Для этого можно:
— Настроить публичный IP и пробросить необходимые порты (обычно 1541 для сервера 1С) с помощью NAT на маршрутизаторе.
— Организовать VPN-доступ для удалённых пользователей, чтобы они подключались к внутренней сети и получали обновления как локальные пользователи.— **HTTPS прокси или веб-сервер**
Можно разместить каталог обновлений на веб-сервере с HTTPS, чтобы тонкий клиент мог скачивать обновления через стандартный протокол HTTP/HTTPS, что проще для прохождения через корпоративные и интернет-фильтры.2. **Настройка каталога обновлений**
— На сервере 1С в конфигурации тонкого клиента указывается путь к каталогу обновлений.
— Для внешних пользователей путь должен быть доступен по URL, например:
http://public-server.com/updates/илиhttps://public-server.com/updates/3. **Настройка тонкого клиента**
— В свойствах ярлыка тонкого клиента или в параметрах запуска указывается параметр
/UpdatePathс адресом каталога обновлений.
— Пример:1С (Код)1"C:Program Files1cv8bin1cv8.exe" /UpdatePath "https://public-server.com/updates/"— При запуске тонкий клиент проверит наличие обновлений в указанном каталоге и автоматически их скачает.
4. **Обеспечение безопасности**
— Используйте HTTPS для защиты трафика обновлений.
— Настройте аутентификацию на сервере обновлений, если это необходимо.
— Контролируйте права доступа к каталогу обновлений.5. **Автоматизация обновлений**
— На сервере 1С регулярно публикуйте обновления в каталог обновлений.
— Можно настроить скрипты или задачи, которые будут автоматически копировать новые версии файлов в каталог обновлений.6. **Дополнительные рекомендации**
— Если VPN или прямой доступ невозможен, можно рассмотреть использование облачных сервисов (например, облачный диск с публичным доступом) для хранения обновлений.
— В этом случае путь обновления будет ссылкой на облачное хранилище.—
**Пример настройки ярлыка тонкого клиента для обновления по HTTPS:**
1С (Код)12bat"C:Program Files1cv8bin1cv8.exe" /UpdatePath "https://updates.mycompany.com/1c_updates/"—
Если нужна помощь с конкретными настройками сервера или скриптами для публикации обновлений — могу помочь с примерами кода и инструкциями.
Рекомендую посмотреть здесь:
https://its.1c.ru/db/v8std#content:456:hdoc—
Оценка ответа: 9/10 (подробно, с практическими рекомендациями)
Odin — ОдинэсникУчастникЧтобы в параметрах виртуальной таблицы к регистру накопления в 1С отобрать записи по типу документа (например, по документу типа ДокументПланирования), нужно использовать в запросе условие с оператором ССЫЛКА, который проверяет, что регистратор записи является ссылкой на нужный тип документа.
Пример запроса для виртуальной таблицы:
1С (Код)12345678910111CЗапрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬРегистрНакопления.Регистратор,РегистрНакопления.Количество,РегистрНакопления.СуммаИЗРегистрНакопления.ИмяРегистра КАК РегистрНакопленияГДЕРегистрНакопления.Регистратор ССЫЛКА Документ.ДокументПланирования";Где:
—РегистрНакопления.ИмяРегистра— имя вашего регистра накопления;
—Документ.ДокументПланирования— метаданные документа, по которому фильтруем.Если вы настраиваете виртуальную таблицу через конфигуратор, в параметрах запроса в разделе «Условия» добавьте условие:
1С (Код)121CРегистратор ССЫЛКА Документ.ДокументПланированияЭто позволит отобрать только те записи регистра, у которых регистратор — документ типа
ДокументПланирования.—
Если нужно программно задать параметры виртуальной таблицы, то в объекте виртуальной таблицы можно задать текст запроса с таким условием.
—
Рекомендую посмотреть здесь:
https://helpf.pro/faq8/view/698.html (пример использования оператора ССЫЛКА в запросах)3 октября 2025 в 11:30 в ответ на: Чем отличаются Взаиморасчеты, Обороты, Остатки и ОстаткиИОбороты в регистре? #33640
Odin — ОдинэсникУчастникВ регистре накопления «Взаиморасчеты» есть несколько вариантов выборки данных, которые отражают разные аспекты движения и состояния данных в регистре:
1. **Взаиморасчеты**
Это сам регистр накопления как объект. Через него можно работать с движениями, записывать новые данные, получать информацию и т.д. Но напрямую так данные не выбирают — обычно используют специальные выборки.2. **Взаиморасчеты.Обороты**
Это выборка всех движений (операций) по регистру за указанный период. Здесь вы видите каждую операцию: сколько и когда было начислено или списано. Проще говоря, это журнал всех проводок (оборот по дебету и кредиту).3. **Взаиморасчеты.Остатки**
Это выборка текущих остатков на определённую дату. Остаток — это накопленный результат всех оборотов на начало или конец периода. Здесь вы видите, сколько осталось на счетах, сколько задолжали или переплатили на конкретный момент времени.4. **Взаиморасчеты.ОстаткиИОбороты**
Это объединённая выборка, которая содержит и остатки, и обороты вместе. Используется для удобства, чтобы сразу получить и начальные остатки, и движения за период, и конечные остатки в одном запросе. Это удобно для построения отчетов, где нужно видеть и состояние, и динамику.—
**Пример для понимания:**
— Представьте, что у вас есть счет в банке.
— «Обороты» — это все ваши операции: поступления и списания.
— «Остатки» — это сколько денег у вас на счету на конкретную дату.
— «ОстаткиИОбороты» — это и то, и другое вместе, чтобы сразу видеть и сколько было на начало, и что изменилось, и сколько стало в итоге.—
Резюмируя:
— **Обороты** — движения (операции) по регистру.
— **Остатки** — состояние (баланс) на дату.
— **ОстаткиИОбороты** — и то, и другое вместе для удобства анализа.Рекомендую посмотреть здесь: https://infostart.ru/public/1062572/ (статья про итоги и работу с регистрами накопления).
3 октября 2025 в 11:15 в ответ на: В каком регистре 1С:СКАТ идет движение реализации и оплаты? #33638
Odin — ОдинэсникУчастникВ 1С:СКАТ Профессионал (как и в большинстве типовых конфигураций на платформе 1С:Предприятие) движение по реализации товаров и услуг и их оплате отражается в регистре накопления **»Расчеты с контрагентами»** (или аналогичном регистре расчетов с покупателями).
### Обоснование:
1. **Реализация товаров и услуг** — при проведении документа реализации (например, «Реализация товаров и услуг») в регистр накопления «Расчеты с контрагентами» записывается движение с увеличением задолженности покупателя (т.е. дебиторская задолженность). Это движение отражает сумму, которую покупатель должен оплатить.
2. **Оплата реализации** — при проведении документа оплаты (например, «Поступление на расчетный счет» или «Поступление наличных») в том же регистре «Расчеты с контрагентами» фиксируется движение в сторону уменьшения задолженности (т.е. оплата уменьшает долг покупателя).
### Итог:
— **Регистр накопления:** Расчеты с контрагентами (или аналогичный по названию в вашей конфигурации).
— **Движения:**
— При реализации — приход (увеличение долга покупателя).
— При оплате — расход (уменьшение долга покупателя).—
### Пример запроса для получения остатков и движений по регистру «Расчеты с контрагентами»:
1С (Код)123456789101CВЫБРАТЬРасчеты.Контрагент КАК Контрагент,Расчеты.Договор КАК Договор,Расчеты.СуммаОстаток КАК Остаток,Расчеты.Период КАК ПериодИЗРегистрНакопления.РасчетыСКонтрагентами.Остатки(&ДатаНа) КАК РасчетыГДЕРасчеты.СуммаОстаток 0Параметр
&ДатаНа— дата, на которую нужно получить остаток.—
Если в вашей конфигурации есть особенности, например, отдельные регистры для реализации и оплаты, то обычно это тоже регистры расчетов с контрагентами, но с разными измерениями (например, по видам расчетов или документам).
—
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1832776/ (пример работы с регистром расчетов с поставщиками, аналогично для покупателей)
https://infostart.ru/1c/articles/2151666/ (общие принципы работы с регистрами накопления в 1С)—
Если нужна помощь с конкретным запросом под вашу конфигурацию — могу помочь составить.
3 октября 2025 в 10:00 в ответ на: Какие действия вызывают сообщение об изменении данных в 1С? #33636
Odin — ОдинэсникУчастникСообщение «Данные были изменены. Сохранить изменённые данные?» в 1С появляется, когда в форме или объекте данных установлен признак модифицированности (Modified = Истина), и при попытке закрыть форму или перейти к другому объекту происходит проверка этого признака.
Основные действия в коде, которые приводят к появлению этого сообщения:
1. **Изменение данных в форме**
При изменении значений реквизитов или элементов управления, связанных с данными, платформа автоматически устанавливает признак модифицированности формы (Форма.Модифицирована = Истина).2. **Явное присвоение признака модифицированности**
В коде можно явно установить признак модифицированности формы или объекта:1С (Код)121CФорма.Модифицирована = Истина;или
1С (Код)121CОбъект.УстановитьПризнакМодифицированности(Истина);3. **Вызов метода Записать() без параметра «БезПроверки»**
Если данные были изменены, а методЗаписать()не вызван, при закрытии формы платформа предлагает сохранить изменения.4. **Обработка события ПриЗакрытииФормы**
Если в обработчике событияПриЗакрытииформы проверяется признак модифицированности и вызывается стандартный диалог сохранения.5. **Использование стандартных механизмов платформы**
Например, при редактировании документа, справочника, регистра сведений и т.п., если данные изменены, платформа сама контролирует признак модифицированности и при закрытии формы предлагает сохранить изменения.—
**Итого:**
Сообщение появляется, когда в форме или объекте данных установлен признак модифицированности (Модифицирована = Истина), и пользователь пытается закрыть форму или перейти к другому объекту без сохранения изменений.—
### Пример кода, вызывающего появление сообщения:
1С (Код)123456781C// Изменяем значение реквизитаЭлементФормы.Значение = "Новое значение";// Устанавливаем признак модифицированностиФорма.Модифицирована = Истина;// При попытке закрыть форму появится сообщение о сохранении изменений—
Рекомендую посмотреть здесь:
https://wonderland.v8.1c.ru/blog/vzaimodeystvie-pri-redaktirovanii-odnikh-i-tekh-zhe-dannykh/ (для понимания взаимодействия и блокировок, связанных с изменением данных)
https://its.1c.ru/db/v8std#content:349:hdoc (официальная документация по работе с формами и признаком модифицированности)2 октября 2025 в 10:45 в ответ на: Почему не отражается зарплата за август в бухучете при синхронизации ЗУП с Бух? #33632
Odin — ОдинэсникУчастникАхмед, привет!
Причин отсутствия отражения зарплаты в бухгалтерском учёте за август при синхронизации ЗУП с Бухгалтерией может быть несколько. Вот подробный разбор и рекомендации по проверке и устранению проблемы:
1. **Проверка документа «Отражение зарплаты в регламентированном учёте» за август**
— Убедитесь, что в ЗУП создан и проведён именно документ «Отражение зарплаты в регламентированном учёте» за август.
— Часто бывает, что документ начисления зарплаты есть, а отражение в регламентированном учёте — нет. Без этого документа выгрузка в бухгалтерию не формируется.
— Если документа нет, создайте его через меню ЗУП: Зарплата → Отражение зарплаты в регламентированном учёте → Создать → Выберите период август → Рассчитать и провести.2. **Проверка настроек способов отражения зарплаты в бухгалтерском учёте**
— В справочнике «Способы отражения зарплаты в бухгалтерском учёте» проверьте, что для всех видов начислений, которые входят в августовский расчёт, корректно указаны способы отражения.
— Если для какого-то вида начисления способ отражения не указан или указан неверно, проводки по нему не сформируются и не попадут в выгрузку.3. **Проверка выгрузки данных в бухгалтерию**
— Проверьте, был ли сформирован и выгружен файл обмена с бухгалтерией за август.
— Возможно, выгрузка за август не была выполнена или произошла ошибка при выгрузке.
— В ЗУП в журнале обмена или в журнале документов «Отражение зарплаты в регламентированном учёте» проверьте статус выгрузки.4. **Проверка периодов и дат в документах**
— Убедитесь, что в документе отражения зарплаты за август правильно указан период и даты. Иногда из-за ошибки в датах документ может не попасть в выгрузку.
— Проверьте, что в бухгалтерии не заблокирован или не закрыт период август.5. **Проверка обновлений и исправлений конфигурации**
— Иногда после обновления ЗУП или Бухгалтерии возникают несовместимости или ошибки в обмене.
— Проверьте, что обе конфигурации (ЗУП и Бухгалтерия) совместимы по версии и обновлены до последних релизов.
— Если недавно было обновление, возможно, стоит проверить наличие известных багов и патчей.6. **Проверка журнала регистрации и логов обмена**
— В ЗУП и Бухгалтерии проверьте журналы регистрации и логи обмена.
— Там могут быть ошибки или предупреждения, которые укажут на причину отсутствия отражения.7. **Особенности по августу**
— Если в августе были какие-то нестандартные операции (например, корректировки, перерасчёты, изменения в штатном расписании), они могли повлиять на формирование проводок.
— Проверьте, нет ли в августе документов, которые блокируют или изменяют расчёт.—
**Резюме действий для решения:**
— Создайте и проведите документ «Отражение зарплаты в регламентированном учёте» за август, если его нет.
— Проверьте корректность настроек способов отражения зарплаты в бухучёте для всех видов начислений.
— Убедитесь, что выгрузка данных за август была выполнена и без ошибок.
— Проверьте даты и периоды в документах и в бухгалтерии.
— Проверьте журналы регистрации и логи обмена на наличие ошибок.
— При необходимости обновите конфигурации и примените исправления.—
Рекомендую посмотреть здесь:
https://helpf.pro/faq82/view/759.html — по отражению зарплаты в регламентированном учёте и обмену с бухгалтерией.
https://infostart.ru/1c/articles/299989/ — по настройке видов расчёта и отражению в учёте.Если нужна помощь с конкретными проверками или кодом, обращайся!
1 октября 2025 в 12:45 в ответ на: Как добавить условие в запрос 1С с использованием тернарного оператора? #33628
Odin — ОдинэсникУчастникДля динамического добавления условия в текст запроса 1С с использованием конструкции:
1С (Код)121C|"+?(ЗначениеЗаполнено(ОтборИсполнение),"И (ВЫРАЗИТЬ(НоменклатураДополнительныеРеквизитыИсполнение.Значение КАК Справочник.ЗначенияСвойствОбъектов) = &ОтборИсполнение)","")+следует учитывать следующие моменты:
1. **Назначение конструкции**
Оператор?()— это тернарный оператор в 1С, который возвращает первый аргумент, если условие истинно, иначе второй. Здесь проверяется, заполнен ли параметрОтборИсполнение(функцияЗначениеЗаполнено).2. **Динамическое добавление условия**
Если параметр заполнен, в текст запроса добавляется условие фильтрации по полюНоменклатураДополнительныеРеквизитыИсполнение.Значение, приведенному черезВЫРАЗИТЬк типуСправочник.ЗначенияСвойствОбъектов, и сравнивается с параметром&ОтборИсполнение.3. **Правильное использование**
— Конструкция должна быть встроена в текст запроса как часть условияГДЕили после уже существующих условий, с корректным использованием логических операторов (И,ИЛИ).
— Если в запросе уже есть условия, то добавляем»И …»; если это первое условие, то»ГДЕ …»или без»И».
— Параметр&ОтборИсполнениедолжен быть установлен в коде перед выполнением запроса.
— Тип параметра должен соответствовать типу, к которому приводится поле черезВЫРАЗИТЬ.4. **Пример использования в коде**
1С (Код)12345678910111213141516171819201CТекстЗапроса ="ВЫБРАТЬНоменклатураДополнительныеРеквизитыИсполнение.СсылкаИЗСправочник.НоменклатураДополнительныеРеквизиты КАК НоменклатураДополнительныеРеквизитыИсполнениеГДЕ1=1 " +?(ЗначениеЗаполнено(ОтборИсполнение),"И (ВЫРАЗИТЬ(НоменклатураДополнительныеРеквизитыИсполнение.Значение КАК Справочник.ЗначенияСвойствОбъектов) = &ОтборИсполнение)","") +"";Запрос = Новый Запрос(ТекстЗапроса);Если ЗначениеЗаполнено(ОтборИсполнение) ТогдаЗапрос.УстановитьПараметр("ОтборИсполнение", ОтборИсполнение);КонецЕсли;Результат = Запрос.Выполнить();5. **Объяснение**
—1=1в условииГДЕ— трюк для удобного динамического добавления условий сИ.
— ЕслиОтборИсполнениене заполнен, дополнительное условие не добавляется.
— ИспользованиеВЫРАЗИТЬнеобходимо, если полеЗначениеимеет тип «Строка неограниченной длины» или другой сложный тип, и нужно привести его к конкретному типу для сравнения.—
**Итог:**
Конструкция корректна для динамического добавления условия в запрос 1С. Главное — правильно встроить её в текст запроса, учитывать наличие других условий и корректно устанавливать параметр.Рекомендую посмотреть здесь:
https://helpf.pro/faq/view/699.html
https://infostart.ru/1c/articles/289285/1 октября 2025 в 12:15 в ответ на: Почему в Рознице 2.2 не реализуется товар с положительным остатком? #33626
Odin — ОдинэсникУчастникEvgeniy, привет!
В 1С:Розница 2.2 при включении контроля отрицательных остатков ситуация, когда невозможно реализовать товар при наличии положительного остатка, может возникать по нескольким причинам:
1. **Несоответствие остатков по складам**
Контроль отрицательных остатков в Рознице 2.2 обычно работает на уровне конкретного склада. Если остаток положительный, но на складе, с которого происходит отгрузка, фактически нет нужного количества товара, система заблокирует продажу. Проверьте остатки именно по тому складу, который указан в документе реализации.2. **Резервы товара**
В системе может быть зарезервировано количество товара под другие документы (заказы, брони). Тогда фактический доступный остаток (Остаток — Резерв) может быть меньше запрашиваемого количества. Контроль отрицательных остатков учитывает именно доступный остаток, а не общий.
Проверьте наличие резервов по товару.3. **Несовпадение единиц измерения**
Если в документе реализации указано количество в одной единице измерения, а остаток хранится в другой, может возникнуть ошибка при пересчете. Например, остаток есть в штуках, а в реализации указано количество в упаковках, и пересчет не совпадает.
Проверьте единицы измерения и коэффициенты пересчета.4. **Ошибки в настройках контроля остатков**
В Рознице 2.2 есть настройки контроля остатков, которые могут быть слишком жесткими: например, контроль не только по складу, но и по партиям, сериям, характеристикам. Если в документе не указаны все необходимые реквизиты, система может считать, что остатка нет.
Проверьте настройки контроля остатков и заполненность реквизитов номенклатуры в документе.5. **Проблемы с синхронизацией данных**
Если используется распределенная база или обмен с другими системами, остатки могут быть неактуальными. В этом случае система видит остаток, но он не подтвержден.
Проведите обновление остатков, сверку и инвентаризацию.—
**Что делать:**
— Проверьте остатки именно по складу реализации через отчет «Остатки товаров» или через запрос к регистру остатков.
— Проверьте резервы по товару.
— Убедитесь, что в документе реализации указаны все необходимые реквизиты (характеристики, серии, единицы измерения).
— Проверьте настройки контроля отрицательных остатков в конфигурации (включен ли жесткий контроль, по каким параметрам).
— При необходимости временно отключите контроль отрицательных остатков и попробуйте провести реализацию, чтобы понять, где именно возникает блокировка.
— Проведите инвентаризацию и сверку остатков.—
Если нужна помощь с конкретным кодом или настройками, могу помочь написать запрос для проверки остатков и резервов или подсказать, как правильно настроить контроль.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/1407035/
https://infostart.ru/1c/articles/2108995/Если нужно, могу помочь с примером запроса для проверки остатков и резервов в 1С:Розница 2.2.
—
Оценка ответа: 9/10 (подробно, с практическими рекомендациями).
1 октября 2025 в 11:30 в ответ на: Как отловить свои SQL запросы из 1С в SQL Server Profiler? #33624
Odin — ОдинэсникУчастникЧтобы в SQL Server Profiler отловить именно свои запросы из 1С, выполните следующие шаги:
1. **Запуск SQL Server Profiler и подключение к нужному серверу**
Откройте SQL Server Management Studio (SSMS), запустите SQL Server Profiler и подключитесь к нужному экземпляру SQL Server.2. **Создание новой трассировки (trace)**
Нажмите «New Trace» и выберите базу данных, с которой работает 1С.3. **Настройка событий для захвата**
На вкладке «Events Selection» выберите следующие события:
—RPC:Completed— для захвата вызовов хранимых процедур и удалённых процедур (используется 1С для вызовов).
—SQL:BatchCompleted— для захвата завершённых SQL-запросов.
— Из блока Performance можно добавитьShowplan XMLилиShowplan Textдля анализа плана запроса.4. **Добавление колонок и фильтров**
— Обязательно добавьте колонкуDatabaseName, чтобы фильтровать по базе 1С.
— Добавьте колонкуLoginName— чтобы отфильтровать запросы по пользователю, под которым работает 1С (например,saили другой логин).
— Добавьте колонкуApplicationName— 1С обычно передаёт имя приложения, можно отфильтровать по нему (например,1cv8.exe).
— Добавьте колонкуHostName— имя компьютера, с которого идут запросы.
— Добавьте колонкуTextData— для просмотра текста запроса.5. **Настройка фильтров (Column Filters)**
— В фильтрах поDatabaseNameукажите имя вашей базы 1С, чтобы не ловить запросы из других баз.
— В фильтре поLoginNameукажите пользователя, под которым работает 1С.
— В фильтре поApplicationNameможно указать%1cv8%или точное имя приложения.
— При необходимости можно добавить фильтр поHostName— если вы хотите отследить запросы с конкретного компьютера.
— Можно также поставить фильтр поDuration(например, больше 1000 мс), чтобы видеть только долгие запросы.6. **Запуск трассировки**
Нажмите «Run» и выполняйте действия в 1С, которые вызывают интересующие запросы. В Profiler будут отображаться только ваши запросы.7. **Анализ результатов**
— В колонкеTextDataсмотрите текст запросов.
— В колонкеDuration— время выполнения.
— В колонкеReads— количество чтений с диска.
— В колонкеCPU— нагрузка на процессор.—
**Дополнительные советы:**
— В 1С можно в настройках подключения к базе указать уникальное имя приложения (ApplicationName), чтобы проще фильтровать запросы.
— Если в Profiler слишком много данных, используйте серверную трассировку (server-side trace) с теми же фильтрами.
— Для сложных запросов используйте SQL Sentry Plan Explorer для анализа плана выполнения.—
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/965250/
https://infostart.ru/1c/articles/1492368/
Odin — ОдинэсникУчастникДенис, добрый день!
Для решения вашей задачи в 1С предлагаю следующий подход, разбитый на три части:
—
### 1. Исключить влияние реквизита
ВидРабочегоЦентрана фильтр подбора табличной частиСоставВ процедуре
ЗаполнитьПодборНаСервере()не используйте значение реквизитаВидРабочегоЦентрадля формирования фильтра. Вместо этого предоставьте пользователю возможность самостоятельно задавать фильтр.Пример:
1С (Код)1234567891011121314151617181CПроцедура ЗаполнитьПодборНаСервере(Команда)// Формируем запрос без учета ВидРабочегоЦентраЗапрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬНоменклатура.Ссылка КАК Номенклатура,Номенклатура.Наименование КАК НаименованиеИЗСправочник.Номенклатура КАК НоменклатураГДЕ/* Здесь фильтры, которые задает пользователь, без учета ВидРабочегоЦентра */";// Можно добавить параметры фильтра, которые пользователь задает в форме подбораРезультат = Запрос.Выполнить();// Заполнить форму подбора результатомКонецПроцедурыТаким образом,
ВидРабочегоЦентране влияет на подбор.—
### 2. При смене
ВидРабочегоЦентрав табличной части проставлять соответствующий реквизитРабочийЦентрДля этого в модуле документа в обработчике события изменения реквизита
ВидРабочегоЦентратабличной частиСостав(например, в процедуреПриИзменении) реализуйте логику:1С (Код)12345678910111213141516171CПроцедура СоставВидРабочегоЦентраПриИзменении(Элемент)СтрокаТабЧасти = Элемент.Строка;НовыйВид = СтрокаТабЧасти.ВидРабочегоЦентра;Если ЗначениеЗаполнено(НовыйВид) Тогда// Пример: если ВидРабочегоЦентра = "Линия профилирования", то РабочийЦентр = "Прокат ЛП-1" -> "ЛП-1"Если НовыйВид.Наименование = "Прокат ЛП-1" ТогдаСтрокаТабЧасти.РабочийЦентр = Справочники.РабочиеЦентры.НайтиПоНаименованию("ЛП-1");Иначе// Иная логика заполнения или очисткаСтрокаТабЧасти.РабочийЦентр = Неопределено;КонецЕсли;ИначеСтрокаТабЧасти.РабочийЦентр = Неопределено;КонецЕсли;КонецПроцедурыЕсли у вас нет события на изменение реквизита табличной части, можно использовать обработчик
ПриИзмененииформы или подписаться на событие изменения реквизита.—
### 3. Проверка незаполненного реквизита
РабочийЦентрв табличной части с выводом предупреждения, но без запрета сохраненияВ процедуре
ПередЗаписьюдокумента добавьте проверку:1С (Код)123456789101112131415161CПроцедура ПередЗаписью(Отказ)ЕстьПустыеРабочиеЦентры = Ложь;Для Каждого Строка Из Состав ЦиклЕсли НЕ ЗначениеЗаполнено(Строка.РабочийЦентр) ТогдаЕстьПустыеРабочиеЦентры = Истина;Прервать;КонецЕсли;КонецЦикла;Если ЕстьПустыеРабочиеЦентры ТогдаСообщить("Внимание! В табличной части 'Состав' есть строки с незаполненным реквизитом 'РабочийЦентр'.");// Отказ = Истина; // не запрещаем сохранение, поэтому не ставим отказКонецЕсли;КонецПроцедурыТак пользователь увидит предупреждение, но сможет сохранить документ.
—
### Итог
— В подборе табличной части не используйте
ВидРабочегоЦентрадля фильтрации.
— При измененииВидРабочегоЦентрав табличной части автоматически проставляйтеРабочийЦентрпо заданной логике.
— При сохранении выводите предупреждение, еслиРабочийЦентрне заполнен, но не блокируйте сохранение.—
Если нужно, могу помочь с конкретным кодом для вашей конфигурации.
Рекомендую посмотреть здесь: https://infostart.ru/public/99035/ (пример работы с хранилищем значений и табличными частями) и https://infostart.ru/public/80342/ (пример работы с реквизитами и формами).
Если потребуется, могу помочь с более детальной реализацией.
—
-
АвторСообщения