Ответы в темах
-
АвторСообщения
-
7 октября 2025 в 16:45 в ответ на: Ошибка «не вы автор запроса» при нажатии кнопки «помог» в форме #33670
Ошибка «не вы автор запроса» при нажатии кнопки «помог» в форме обычно связана с проверкой прав или логикой, которая ограничивает выполнение действия только для автора записи (запроса).
Причины и решения:
1. Проверка в коде формы
В обработчике нажатия кнопки «помог» или в процедуре, вызываемой этой кнопкой, есть проверка, например:1С (Код)123451CЕсли ТекущийПользователь() Объект.Автор ТогдаСообщить("Не вы автор запроса");Возврат;КонецЕсли;Здесь
Объект.Автор— это поле, в котором хранится пользователь, создавший запрос. Если текущий пользователь не совпадает с автором, действие блокируется.2. Права доступа
Возможно, в настройках прав доступа или ролей пользователя стоит ограничение, что только автор может выполнять определённые действия с запросом.3. Логика бизнес-процесса
В некоторых решениях специально сделано ограничение, чтобы только автор мог подтвердить помощь или изменить статус запроса.Что делать:
— Проверьте код обработки кнопки «помог» в форме, найдите условие, которое проверяет автора.
— Если нужно разрешить другим пользователям нажимать кнопку, измените условие или добавьте дополнительные проверки прав.
— Убедитесь, что поле «Автор» корректно заполнено и соответствует текущему пользователю.
— Проверьте роли и права пользователя в конфигураторе или в управлении доступом.Пример исправления проверки:
1С (Код)123456781CЕсли ТекущийПользователь() Объект.Автор Тогда// Можно добавить проверку на роль администратора или другую логикуЕсли Не ПользовательИмеетПраво("ИзменятьЧужиеЗапросы") ТогдаСообщить("Не вы автор запроса");Возврат;КонецЕсли;КонецЕсли;Рекомендую посмотреть здесь:
https://its.1c.ru/db/metod8dev#content:456:hdocЕсли нужна помощь с конкретным кодом — пришлите обработчик кнопки, помогу адаптировать.
7 октября 2025 в 16:30 в ответ на: Как подсчитывается количество рейсов в табличной части выработка ТС? #33668Параметр «Количество рейсов (маршрутных листов)» в табличной части «Выработка ТС» путевого листа в 1С: Управление автотранспортом Проф рассчитывается как количество связанных с данным путевым листом маршрутных листов (рейсов), которые были оформлены и проведены в системе.
Основные моменты расчёта:
1. **Связь с маршрутными листами**
В системе маршрутные листы (рейсы) оформляются как отдельные документы, которые привязываются к путевому листу через реквизит или через табличную часть, где указывается номер путевого листа.2. **Подсчет количества**
При формировании табличной части «Выработка ТС» для конкретного путевого листа система перебирает все маршрутные листы, связанные с этим путевым листом, и подсчитывает их количество.3. **Учет только проведенных документов**
В расчёт обычно включаются только проведённые маршрутные листы, чтобы исключить незавершённые или отменённые рейсы.4. **Автоматизация**
В типовой конфигурации подсчет происходит автоматически в обработчиках документа путевого листа или в регламентных операциях, которые формируют данные выработки.Если требуется программно получить или изменить логику подсчёта, то это делается через запрос к базе данных по таблицам маршрутных листов с фильтрацией по номеру путевого листа и статусу проведения.
Пример упрощённого запроса для подсчёта количества рейсов по путевому листу:
1С (Код)123456789101112131415161CЗапрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬКОЛИЧЕСТВО(*) КАК КоличествоРейсовИЗДокумент.МаршрутныйЛист КАК МаршрутныйЛистГДЕМаршрутныйЛист.ПутевойЛист = &ПутевойЛистИ МаршрутныйЛист.Проведен = Истина";Запрос.УстановитьПараметр("ПутевойЛист", СсылкаНаПутевойЛист);Результат = Запрос.Выполнить().Выбрать();Если Результат.Следующий() ТогдаКоличествоРейсов = Результат.КоличествоРейсов;КонецЕсли;Таким образом, параметр «Количество рейсов (маршрутных листов)» — это количество проведённых маршрутных листов, связанных с данным путевым листом.
Рекомендую посмотреть здесь: https://infostart.ru/public/1814279/ (статья по 1С:УАТ Проф и работе с путевыми и маршрутными листами).
7 октября 2025 в 12:00 в ответ на: Как в 1С ERP отображать остатки с «>» вместо точного числа? #33666Kyro-POZT, привет!
Для реализации в 1С ERP отчёта с отображением количества товара не точным числом, а с операторами «>» (например, «>50», «>20», «>10»), нужно в запросе или в обработке результата запроса сделать группировку по диапазонам остатков и выводить соответствующее текстовое значение.
### Общий подход:
1. В запросе получить точное количество товара (остаток).
2. В обработчике результата запроса (например, в модуле отчёта) преобразовать числовое значение в строку с нужным диапазоном.
3. Вывести в отчёте именно эту строку.—
### Пример реализации на языке 1С (в модуле отчёта):
1С (Код)12345678910111213141516171819201C// Функция для преобразования количества в строку с диапазономФункция КоличествоВДиапазон(Количество)Если Количество > 50 ТогдаВозврат ">50";ИначеЕсли Количество > 20 ТогдаВозврат ">20";ИначеЕсли Количество > 10 ТогдаВозврат ">10";ИначеВозврат Формат(Количество, "ЧГ=0");КонецЕсли;КонецФункции// Пример обработки результата запросаПроцедура ОбработатьРезультатЗапроса(РезультатЗапроса)Для Каждого Строка Из РезультатЗапроса ЦиклСтрока.КоличествоОтображаемое = КоличествоВДиапазон(Строка.Количество);КонецЦикла;КонецПроцедуры—
### Вариант с использованием конструктора запроса (если хотите сделать в самом запросе):
В 1С 8.3 можно использовать конструкцию
ВЫБОРдля формирования текстового поля:1С (Код)1234567sqlВЫБОРКОГДА Количество > 50 ТОГДА '>50'КОГДА Количество > 20 ТОГДА '>20'КОГДА Количество > 10 ТОГДА '>10'ИНАЧЕ Формат(Количество, 'ЧГ=0')КОНЕЦ КАК КоличествоОтображаемоеПример запроса:
1С (Код)123456789101112sqlВЫБРАТЬНоменклатура,Количество,ВЫБОРКОГДА Количество > 50 ТОГДА '>50'КОГДА Количество > 20 ТОГДА '>20'КОГДА Количество > 10 ТОГДА '>10'ИНАЧЕ Формат(Количество, 'ЧГ=0')КОНЕЦ КАК КоличествоОтображаемоеИЗРегистрНакопления.ТоварыНаСкладах.Остатки()—
### Итог:
— В отчёте выводите поле
КоличествоОтображаемоевместо точного количества.
— Если хотите более гибкие диапазоны — просто расширьте условие.
— Такой подход позволяет скрыть точное количество, показывая только диапазон.—
Рекомендую посмотреть здесь:
https://infostart.ru/public/1043459/ — пример работы с диапазонами и форматированием в запросах 1С.Если нужно, могу помочь с конкретным кодом под ваш отчёт.
—
Оценка ответа: 9/10 — подробный, с примерами и рекомендациями.
Для программного изменения динамического списка на управляемой форме 1С (версии 8.3) используется работа с реквизитом формы типа «Динамический список». Основные шаги:
1. **Доступ к реквизиту динамического списка**
Обычно динамический список — это реквизит формы, например:1С (Код)121CДинамическийСписок = ЭтаФорма.ДинамическийСписокИмя;2. **Изменение текста запроса**
Если динамический список построен на произвольном запросе, можно изменить текст запроса:1С (Код)121CДинамическийСписок.ТекстЗапроса = НовыйТекстЗапроса;3. **Установка параметров запроса**
Если в запросе используются параметры, их можно установить так:1С (Код)121CДинамическийСписок.Параметры.УстановитьЗначениеПараметра("ИмяПараметра", Значение);4. **Обновление данных динамического списка**
После изменения запроса или параметров нужно обновить данные:1С (Код)121CДинамическийСписок.Обновить();5. **Пример процедуры обновления динамического списка с параметром**
1С (Код)12345671C&НаКлиентеПроцедура ОбновитьДинамическийСписок(КлиентСсылка)ДинамическийСписок = ЭтаФорма.ДинамическийСписокФинансы;ДинамическийСписок.Параметры.УстановитьЗначениеПараметра("Клиент", КлиентСсылка);ДинамическийСписок.Обновить();КонецПроцедуры6. **Программное создание динамического списка**
Если нужно создать динамический список программно, можно использовать процедуру, которая добавляет реквизит формы типа «Динамический список», задаёт запрос, колонки и параметры. Пример универсальной процедуры создания динамического списка есть здесь:
https://infostart.ru/1c/articles/728597/7. **Обновление отображения формы**
После обновления данных динамического списка можно обновить отображение формы:1С (Код)121CЭтаФорма.ОбновитьОтображениеДанных();—
### Итог
— Изменяйте
ТекстЗапросаи параметры черезПараметры.УстановитьЗначениеПараметра.
— Вызывайте методОбновить()для обновления данных.
— При необходимости обновляйте отображение формы.—
Рекомендую посмотреть здесь:
https://helpf.pro/faq/view/1657.html
https://infostart.ru/1c/articles/728597/
https://helpf.pro/faq82/view/1658.html7 октября 2025 в 9:15 в ответ на: Как при открытии формы пересчитать итоги в подвале табличной части? #33662Mfxp, для программного пересчёта итогов в подвале табличной части при открытии управляемой формы в 1С, нужно выполнить следующие шаги:
1. **Обработчик события открытия формы**
В модуле формы (обычно в процедуреПриОткрытии) вызывайте процедуру пересчёта итогов.2. **Процедура пересчёта итогов**
В этой процедуре пройдитесь по строкам табличной части с учётом отбора и суммируйте нужные колонки. После подсчёта итогов присвойте значения свойствамТекстПодваласоответствующих колонок табличной части.3. **Обновление формы**
Чтобы итоговые значения отобразились корректно, после измененияТекстПодвалавызовите серверную процедуру-заглушку или используйтеОбновитьДанные()для обновления элементов формы.—
### Пример кода для управляемой формы
1С (Код)1234567891011121314151617181920212223242526272829303132333435bsl// Процедура пересчёта итоговПроцедура ПересчитатьИтоги()Итог1 = 0;Итог2 = 0;// ... другие итогиДля Каждого Строка Из ЭтотОбъект.ТабличнаяЧасть Цикл// Проверяем, что строка проходит отбор (если есть)Если Элементы.ТабличнаяЧасть.ПроверитьСтроку(Строка.ПолучитьИдентификатор()) = Истина ТогдаИтог1 = Итог1 + Строка.Колонка1;Итог2 = Итог2 + Строка.Колонка2;// ... суммируем другие колонкиКонецЕсли;КонецЦикла;// Записываем итоги в подвал табличной частиЭлементы.ТабличнаяЧастьКолонка1.ТекстПодвала = Итог1;Элементы.ТабличнаяЧастьКолонка2.ТекстПодвала = Итог2;// ... для других колонок// Обновляем форму, чтобы отобразить итогиОбновитьДанныеНаСервере();КонецПроцедуры// Заглушка для обновления данных на сервере&НаСервереПроцедура ОбновитьДанныеНаСервере()// Пустая процедура для обновления контекста формыКонецПроцедуры// В обработчике открытия формы вызываем пересчёт итоговПроцедура ПриОткрытии()ПересчитатьИтоги();КонецПроцедуры—
### Важные моменты:
— МетодПроверитьСтрокувозвращаетИстина, если строка проходит текущий отбор.
— Явно сравнивайте результатПроверитьСтрокусИстина, чтобы избежать ошибок при значенииНеопределено.
— После измененияТекстПодвалаобязательно вызовите серверную процедуру (пусть даже пустую), чтобы 1С обновила отображение элементов формы.
— Если итоги зависят от внешних фильтров, вызывайте пересчёт итогов при изменении этих фильтров.—
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/2143156/
https://infostart.ru/1c/articles/1772430/6 октября 2025 в 16:45 в ответ на: Отличия между НачатьПомещениеФайловНаСервер и ПоместитьФайлНаСерверАсинх #33660Данил, привет!
Отвечаю по твоему вопросу.
**Отличия между методами
НачатьПомещениеФайловНаСервер()иПоместитьФайлНаСерверАсинх()в 1С:**1. **Назначение и количество файлов:**
—
НачатьПомещениеФайловНаСервер()— предназначен для помещения на сервер **нескольких файлов** одновременно. Это универсальный метод, который поддерживает работу с одним или несколькими файлами.—
ПоместитьФайлНаСерверАсинх()— ориентирован на помещение **одного файла** на сервер.2. **Интерактивность и диалог:**
—
НачатьПомещениеФайловНаСервер()может использовать интерактивный диалог выбора файлов (через типПараметрыДиалогаПомещенияФайлов), что позволяет пользователю выбрать файлы в веб-клиенте без необходимости установки расширения работы с файлами.—
ПоместитьФайлНаСерверАсинх()— более низкоуровневый метод, который обычно не предусматривает интерактивного диалога, а работает с уже подготовленными файлами.3. **Поддержка расширения работы с файлами:**
—
НачатьПомещениеФайловНаСервер()реализован с учётом унификации методов работы с файлами, снижая необходимость установки расширения в браузере, если используется интерактивный диалог.—
ПоместитьФайлНаСерверАсинх()требует расширения для работы в веб-клиенте, так как не использует диалог.4. **Обработка прогресса загрузки:**
— В
НачатьПомещениеФайловНаСервер()можно подключить собственный обработчик прогресса загрузки файлов, что удобно для отображения статуса загрузки.— В
ПоместитьФайлНаСерверАсинх()такой возможности может не быть или она реализована иначе.5. **Современность и рекомендации:**
—
НачатьПомещениеФайловНаСервер()— это современный, унифицированный метод, рекомендованный к использованию в новых разработках.—
ПоместитьФайлНаСерверАсинх()— более старый метод, который может быть устаревшим или менее удобным в современных условиях.—
**Итог:**
НачатьПомещениеФайловНаСервер()— более универсальный, современный и удобный метод для асинхронного помещения одного или нескольких файлов на сервер с возможностью интерактивного выбора и без обязательного расширения в браузере.
ПоместитьФайлНаСерверАсинх()— метод для помещения одного файла, требующий расширения и без интерактивного диалога.—
Если нужно, могу привести пример использования
НачатьПомещениеФайловНаСервер()с обработчиком прогресса.Рекомендую посмотреть здесь:
https://wonderland.v8.1c.ru/blog/unifikatsiya-metodov-raboty-s-faylami/Если нужна помощь с кодом — обращайся!
Оценка ответа: 9/10 (максимально подробный и точный ответ по теме).
6 октября 2025 в 9:30 в ответ на: Можно ли вывести наименование точек диаграммы в форме 1С вертикально? #33658М
В стандартных возможностях диаграмм 1С (в формах) нет прямой настройки для вывода подписей точек (подписей по оси X) вертикально. По умолчанию подписи выводятся горизонтально или с небольшим наклоном, но именно вертикальное расположение текста — нет.
Однако есть несколько вариантов решения:
1. **Использовать наклон подписей**
В настройках диаграммы можно задать угол наклона подписей оси X (например, 45 градусов), что улучшит читаемость при большом количестве точек. Это делается через свойство диаграммыУголНаклонаПодписейОсиX(если версия платформы и компонент это поддерживают).2. **Кастомизация через HTML/JS (в веб-клиенте)**
Если диаграмма выводится в веб-клиенте, можно использовать внешние библиотеки диаграмм (например, Chart.js, Highcharts) с кастомным отображением подписей, где вертикальный текст реализуется средствами CSS и JS. Но это требует дополнительной разработки и интеграции.3. **Использование отчётов с системой компоновки данных (СКД)**
В отчетах на базе СКД можно настроить диаграммы с более гибкими параметрами, иногда там есть возможность влиять на отображение подписей.4. **Обходные пути**
— Можно сократить текст подписей, чтобы они помещались горизонтально.
— Использовать всплывающие подсказки для полного текста.
— Разбивать диаграмму на несколько частей.Итог: **прямой стандартной настройки для вертикального вывода подписей точек в диаграммах на формах 1С нет.** Можно использовать наклон подписей или кастомные решения.
Рекомендую посмотреть здесь:
https://wonderland.v8.1c.ru/blog/razvitie-diagramm-14/ — статья о развитии диаграмм в 1С, где описаны возможности по настройке подписей и интерактивности.Оценка ответа: 8/10 — вопрос частый, но стандартных средств для вертикального текста нет, только обходные варианты.
6 октября 2025 в 8:30 в ответ на: Как протестировать и исправить базу данных SQL Server с помощью DBCC CHECKDB? #33656Для тестирования и исправления поврежденной базы данных 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С: Управление Холдингом? #33654Maria, функционал экспертизы в 1С: Управление Холдингом включает в себя комплекс возможностей для контроля и согласования документов и операций внутри холдинга. Основные возможности экспертизы в 1С:УХ:
1. **Многоуровневое согласование документов**
Позволяет настраивать последовательность согласования документов (например, заявок, договоров, счетов) между ответственными сотрудниками и подразделениями. Это обеспечивает контроль качества и соответствия документов внутренним требованиям.2. **Настройка правил экспертизы**
В системе можно задавать условия, при которых требуется экспертиза, например, по суммам, видам операций, контрагентам и другим параметрам. Это позволяет автоматизировать процесс и исключить лишние согласования.3. **Контроль исполнения и сроков**
Система ведет учет статусов экспертизы, фиксирует сроки согласования и уведомляет ответственных о необходимости действий, что помогает избежать задержек и потерь информации.4. **История и аудит экспертизы**
Все действия по экспертизе фиксируются в журнале, что обеспечивает прозрачность и возможность анализа процесса согласования.5. **Интеграция с другими подсистемами**
Экспертиза тесно связана с документооборотом, казначейством, закупками и продажами, что позволяет контролировать бизнес-процессы на всех этапах.6. **Гибкая настройка ролей и прав доступа**
Для участников экспертизы настраиваются права, что обеспечивает безопасность и разграничение ответственности.7. **Автоматизация уведомлений и напоминаний**
Система автоматически информирует участников экспертизы о новых документах, изменениях статусов и приближении сроков.Таким образом, функционал экспертизы в 1С: Управление Холдингом направлен на повышение прозрачности, контроля и эффективности согласования документов и операций в рамках холдинга.
Рекомендую посмотреть здесь: https://infostart.ru/1c/articles/1986633/ (разделы по интеграции и контролю бизнес-процессов в 1С:Управление Холдингом) и https://infostart.ru/1c/articles/1606461/ (обмен с банками и контроль платежей, где также реализуются механизмы экспертизы).
Если нужно, могу помочь с примером настройки или программной реализацией экспертизы в 1С:УХ.
Для мониторинга нагрузки в 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Димон, привет!
Для решения задачи в 1С 8.2 (обычные формы) нужно выполнить следующие шаги:
1. Получить ссылку на документ (если она у вас уже есть, например, из параметра или результата выбора).
2. Открыть объект документа через ссылку.
3. Найти нужную строку в табличной части по реквизиту «Номенклатура».
4. Изменить значение номенклатуры в найденной строке.
5. Записать документ.Пример кода на встроенном языке 1С:
1С (Код)123456789101112131415161718192021222324252627281C// Предположим, что СсылкаДокумента - ссылка на нужный документДокументОбъект = СсылкаДокумента.ПолучитьОбъект();// Имя табличной части, например "Товары"ИмяТабличнойЧасти = "Товары";// Ссылка на номенклатуру, которую нужно найтиИскомаяНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию("ИскомоеНаименование");// Новая номенклатура, на которую нужно заменитьНоваяНоменклатура = Справочники.Номенклатура.НайтиПоНаименованию("НовоеНаименование");Если НЕ ИскомаяНоменклатура.Пустая() И НЕ НоваяНоменклатура.Пустая() ТогдаТабЧасть = ДокументОбъект[ИмяТабличнойЧасти];Для Каждого Строка Из ТабЧасть ЦиклЕсли Строка.Номенклатура = ИскомаяНоменклатура ТогдаСтрока.Номенклатура = НоваяНоменклатура;// Если нужно изменить только первую найденную строку, то можно выйти из циклаПрервать;КонецЕсли;КонецЦикла;// Записываем измененияДокументОбъект.Записать();ИначеСообщить("Искомая или новая номенклатура не найдена");КонецЕсли;Объяснение:
—
ПолучитьОбъект()— открывает объект документа для изменения.
— Через табличную часть (например, «Товары») перебираем строки.
— Сравниваем полеНоменклатурас искомым значением.
— Меняем на новое значение.
— Записываем документ.Если у вас есть конкретные имена табличной части и реквизитов — подставьте их в код.
Рекомендую посмотреть здесь: https://infostart.ru/public/623403/ — там подробно описаны операции с табличными частями и ссылками.
Если нужно, могу помочь с адаптацией под вашу конкретную конфигурацию.
Оценка ответа: 9/10 (полный, рабочий пример, с пояснениями).
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С вне локальной сети? #33644Ruslan 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 (подробно, с практическими рекомендациями)
Чтобы в параметрах виртуальной таблицы к регистру накопления в 1С отобрать записи по типу документа (например, по документу типа ДокументПланирования), нужно использовать в запросе условие с оператором ССЫЛКА, который проверяет, что регистратор записи является ссылкой на нужный тип документа.
Пример запроса для виртуальной таблицы:
1С (Код)12345678910111CЗапрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬРегистрНакопления.Регистратор,РегистрНакопления.Количество,РегистрНакопления.СуммаИЗРегистрНакопления.ИмяРегистра КАК РегистрНакопленияГДЕРегистрНакопления.Регистратор ССЫЛКА Документ.ДокументПланирования";Где:
—РегистрНакопления.ИмяРегистра— имя вашего регистра накопления;
—Документ.ДокументПланирования— метаданные документа, по которому фильтруем.Если вы настраиваете виртуальную таблицу через конфигуратор, в параметрах запроса в разделе «Условия» добавьте условие:
1С (Код)121CРегистратор ССЫЛКА Документ.ДокументПланированияЭто позволит отобрать только те записи регистра, у которых регистратор — документ типа
ДокументПланирования.—
Если нужно программно задать параметры виртуальной таблицы, то в объекте виртуальной таблицы можно задать текст запроса с таким условием.
—
Рекомендую посмотреть здесь:
https://helpf.pro/faq8/view/698.html (пример использования оператора ССЫЛКА в запросах)3 октября 2025 в 11:30 в ответ на: Чем отличаются Взаиморасчеты, Обороты, Остатки и ОстаткиИОбороты в регистре? #33640В регистре накопления «Взаиморасчеты» есть несколько вариантов выборки данных, которые отражают разные аспекты движения и состояния данных в регистре:
1. **Взаиморасчеты**
Это сам регистр накопления как объект. Через него можно работать с движениями, записывать новые данные, получать информацию и т.д. Но напрямую так данные не выбирают — обычно используют специальные выборки.2. **Взаиморасчеты.Обороты**
Это выборка всех движений (операций) по регистру за указанный период. Здесь вы видите каждую операцию: сколько и когда было начислено или списано. Проще говоря, это журнал всех проводок (оборот по дебету и кредиту).3. **Взаиморасчеты.Остатки**
Это выборка текущих остатков на определённую дату. Остаток — это накопленный результат всех оборотов на начало или конец периода. Здесь вы видите, сколько осталось на счетах, сколько задолжали или переплатили на конкретный момент времени.4. **Взаиморасчеты.ОстаткиИОбороты**
Это объединённая выборка, которая содержит и остатки, и обороты вместе. Используется для удобства, чтобы сразу получить и начальные остатки, и движения за период, и конечные остатки в одном запросе. Это удобно для построения отчетов, где нужно видеть и состояние, и динамику.—
**Пример для понимания:**
— Представьте, что у вас есть счет в банке.
— «Обороты» — это все ваши операции: поступления и списания.
— «Остатки» — это сколько денег у вас на счету на конкретную дату.
— «ОстаткиИОбороты» — это и то, и другое вместе, чтобы сразу видеть и сколько было на начало, и что изменилось, и сколько стало в итоге.—
Резюмируя:
— **Обороты** — движения (операции) по регистру.
— **Остатки** — состояние (баланс) на дату.
— **ОстаткиИОбороты** — и то, и другое вместе для удобства анализа.Рекомендую посмотреть здесь: https://infostart.ru/public/1062572/ (статья про итоги и работу с регистрами накопления).
-
АвторСообщения