Ответы в темах
-
АвторСообщения
-
Атрибут timeout в файле web публикации default.vrd задает время ожидания (таймаут) для различных операций веб-сервиса 1С, например, время ожидания ответа от сервера или время ожидания соединения. Он указывается в миллисекундах и позволяет контролировать, сколько времени клиент будет ждать ответа, прежде чем прервать операцию с ошибкой.
Пример использования атрибута timeout в default.vrd:
1С (Код)1234567<?xml version="1.0" encoding="UTF-8"?><point xmlns="http://v8.1c.ru/8.2/virtual-resource-system"base="/test"ib="Srvr=10.7.12.108;Ref=test;"timeout="30000"><!-- timeout="30000" означает таймаут 30 секунд --></point>В этом примере timeout=»30000″ задает таймаут 30 000 миллисекунд (30 секунд) для операций веб-публикации.
Если timeout не указан, используется значение по умолчанию, которое может быть разным в зависимости от версии платформы и настроек сервера.
Использование атрибута timeout полезно для предотвращения «зависания» клиента при долгих операциях или проблемах с сетью.
https://infostart.ru/1c/articles/303420/ (пример публикации базы 1С на Apache Linux с описанием параметров default.vrd)Наталья, привет!
Долгое закрытие форм в документообороте 1С — частая проблема, связанная с несколькими основными причинами. Вот что нужно проверить и оптимизировать:
1. **Обработчики событий формы (ПриЗакрытии, ПриВыходе и т.п.)**
Часто в этих обработчиках выполняются тяжелые операции — например, сохранение данных, обновление справочников, вызов внешних обработок, запросы к базе. Проверьте код в этих процедурах, особенно если там есть циклы, запросы или вызовы внешних сервисов. Оптимизируйте или перенесите тяжелые операции в фоновые задачи.2. **Проведение и отмена проведения документов при закрытии**
Если в момент закрытия формы происходит проведение или отмена проведения документа, это может сильно тормозить. Проверьте, не вызывается ли в обработчиках закрытия метод проведения документа. Если да — лучше делать это явно по кнопке, а не автоматически при закрытии.3. **Обработка блокировок и транзакций**
Если при закрытии формы происходит длительное ожидание снятия блокировок или завершения транзакций, это замедляет процесс. Проверьте, нет ли долгих запросов к базе, которые блокируют объекты.4. **Объем данных в форме**
Если форма содержит большие табличные части или сложные подчиненные формы, при закрытии может происходить синхронизация данных с базой, что занимает время. Попробуйте уменьшить объем данных, загружаемых в форму, или оптимизировать загрузку.5. **Сетевые задержки и производительность сервера**
Если база 1С работает по сети, проверьте скорость соединения и нагрузку на сервер. Медленный сервер или сеть могут замедлять операции закрытия форм.6. **Логирование и отладка**
Включите трассировку или логирование в обработчиках закрытия форм, чтобы понять, на каком именно шаге происходит задержка.7. **Использование асинхронных операций**
Если возможно, тяжелые операции при закрытии формы лучше выполнять асинхронно, чтобы не блокировать интерфейс.8. **Обновление платформы и конфигурации**
Иногда проблемы с производительностью связаны с багами в платформе или конфигурации. Проверьте, что у вас актуальная версия 1С и конфигурации.Пример оптимизации в обработчике ПриЗакрытии:
1С (Код)12345678910111213Процедура ПриЗакрытии()// Проверяем, нужно ли выполнять тяжелые операцииЕсли Не ТяжелыеОперацииВыполняются Тогда// Выполняем минимальный набор действийВозврат; // Добавлено для заполнения блокаИначе// Запускаем тяжелую операцию в фоновом режиме или через таймерТаймер = Новый Таймер;Таймер.Интервал = 1000; // 1 секундаТаймер.Обработчик = ОбработатьТяжелуюОперацию;Таймер.Включить();КонецЕсли;КонецПроцедурыЕсли хотите, могу помочь с конкретным кодом или анализом вашей конфигурации.
https://infostart.ru/public/189390/ — пример работы с формами документов в управляемом интерфейсе, чтобы избежать долгих операций при открытии и закрытии.
https://helpf.pro/faq/view/1268.html — как управлять режимом проведения документа, чтобы не тормозить интерфейс.
Если нужна помощь с конкретным кодом — присылайте, разберём.
20 февраля 2026 в 16:15 в ответ на: Как 1С обрабатывает запись с НовоеКоличество = 0 в регистре накопления? #35884Если в регистре накопления при записи движения указать НовоеКоличество = 0, то:
1. Запись движения с нулевым количеством в регистре накопления считается корректной и допустимой с точки зрения платформы 1С. Ошибок при записи не будет.
2. Однако с точки зрения бизнес-логики и учета такое движение фактически не изменит остатки по регистру, так как количество не изменится.
3. В некоторых случаях запись с нулевым количеством может использоваться для сторно или для фиксации факта операции без изменения количества, например, для корректировок или фиксации движения с нулевым количеством.
4. Важно учитывать, что если в регистре накопления есть контроль остатков (например, по количеству), то запись с нулевым количеством не вызовет проблем с контролем, так как фактически остаток не изменится.
5. Если же в коде или обработках есть логика, которая игнорирует движения с нулевым количеством, то такая запись может быть проигнорирована при последующих расчетах.
6. В целом, запись с НовоеКоличество = 0 корректна, но с точки зрения учета она не изменит состояние регистра. Если цель — сторно, то обычно сторно делают с отрицательным количеством, равным количеству сторнируемой записи.
Резюмируя: запись с НовоеКоличество = 0 технически корректна и не вызовет ошибок, но с точки зрения учета она не изменит остатки и не является полноценным сторно. Для сторно лучше использовать отрицательное количество, равное сторнируемому.
20 февраля 2026 в 14:15 в ответ на: Как правильно оформить сторно-движения в регистре ТоварыКПоступлению? #35882Даниил, привет!
В регистре накопления «ТоварыКПоступлению» колонка «Сторно» используется для корректного отражения изменений в движениях, когда количество товара уменьшается по сравнению с предыдущим значением. При изменении количества с 2 на 1 нужно записать два движения:
1. Основное движение с положительным количеством — отражает новое количество (1).
2. Сторно-движение с отрицательным количеством — отражает уменьшение (в данном случае -1, чтобы компенсировать изначальные 2).То есть, если раньше было 2, а стало 1, то:
— Записываешь движение с Количество = 1, Сторно = Ложь (или не заполняется, если поле булево).
— Записываешь движение с Количество = -1, Сторно = Истина.В коде это обычно реализуется так:
1С (Код)1234567891011121314151617181920212223242526// Предположим, что есть переменные:// СтароеКоличество = 2;// НовоеКоличество = 1;Если НовоеКоличество < СтароеКоличество Тогда// Запись сторно движенияДвижение = Движения.ТоварыКПоступлению.Добавить();Движение.Период = ТекущаяДата;Движение.Номенклатура = ТекущаяНоменклатура;Движение.Количество = СтароеКоличество - НовоеКоличество;Движение.Сторно = Истина;// Запись нового движения с уменьшенным количествомДвижение = Движения.ТоварыКПоступлению.Добавить();Движение.Период = ТекущаяДата;Движение.Номенклатура = ТекущаяНоменклатура;Движение.Количество = НовоеКоличество;Движение.Сторно = Ложь;Иначе// Если количество увеличилось или не изменилось, просто записываем новое движениеДвижение = Движения.ТоварыКПоступлению.Добавить();Движение.Период = ТекущаяДата;Движение.Номенклатура = ТекущаяНоменклатура;Движение.Количество = НовоеКоличество;Движение.Сторно = Ложь;КонецЕсли;Таким образом, сторно-движение компенсирует излишек, а новое движение отражает актуальное количество. Это позволяет корректно вести учет остатков и движения товаров.
Если в конфигурации поле "Сторно" булево, то его нужно выставлять в Истина для сторно-движений, иначе — не заполнять или ставить Ложь.
Если нужна помощь с конкретным кодом — могу помочь написать.
20 февраля 2026 в 6:45 в ответ на: Почему ведомость за 17.02 не выгружена из 1С:ЗУП в 1С:Бухгалтерию? #35880Причин, почему ведомость за 17.02 не попала из 1С:ЗУП в 1С:Бухгалтерию, может быть несколько. Вот основные моменты, которые нужно проверить и причины, почему это могло произойти:
1. **Период выгрузки/обмена не охватывает 17.02**
— Проверьте настройки обмена данными между ЗУП и Бухгалтерией. Возможно, в настройках выгрузки или обмена указан период, который не включает 17 февраля.
— В параметрах обмена или в обработке выгрузки проверьте, что дата начала и окончания периода корректно установлены и включают 17.02.2. **Документы за 17.02 не проведены или помечены на удаление**
— В 1С:ЗУП документы по зарплате и расчетам должны быть проведены, чтобы попасть в выгрузку. Если ведомость за 17.02 не проведена, она не попадет в обмен.
— Также проверьте, не стоит ли на этих документах пометка удаления.3. **Ошибка при выгрузке или обмене**
— В журнале регистрации 1С:ЗУП и 1С:Бухгалтерии проверьте наличие ошибок, связанных с выгрузкой или загрузкой данных за 17.02.
— Иногда при ошибках в структуре данных или при несовпадении справочников обмен прерывается или пропускает часть данных.4. **Несовпадение справочников и настроек обмена**
— Проверьте, что в обеих базах совпадают справочники: сотрудники, подразделения, организации, виды начислений и удержаний. Несовпадение может привести к тому, что документы не будут корректно сопоставлены и не попадут в бухгалтерию.
— Особенно важно проверить, что в 1С:Бухгалтерии есть все необходимые элементы справочников, используемые в ведомости за 17.02.5. **Настройки фильтрации в обработке обмена**
— В обработках обмена могут быть установлены фильтры по датам, организациям, подразделениям. Проверьте, что фильтры не исключают данные за 17.02.6. **Проблемы с регламентными заданиями или фоновой обработкой**
— Если обмен настроен через регламентные задания, проверьте, что они выполнялись корректно и без ошибок.
— Иногда фоновые задания могут не сработать или прерваться, что приводит к неполному обмену.7. **Ручная выгрузка/загрузка**
— Если обмен настроен вручную, проверьте, что выгрузка данных за 17.02 была сделана и файл был корректно загружен в 1С:Бухгалтерию.8. **Версии конфигураций и платформы**
— Несовместимость версий конфигураций ЗУП и Бухгалтерии может привести к ошибкам обмена. Убедитесь, что версии конфигураций поддерживают обмен между собой.—
**Что делать:**
— Проверьте журнал регистрации в обеих базах на предмет ошибок обмена.
— Убедитесь, что документы за 17.02 проведены и не помечены на удаление.
— Проверьте настройки обмена, особенно период выгрузки и фильтры.
— Сверьте справочники и настройки обмена.
— При необходимости выполните повторную выгрузку и загрузку данных за 17.02.
— Если обмен настроен через регламентные задания, проверьте их выполнение и логи.—
Если нужна конкретика по настройке обмена или по диагностике ошибок, можно привести пример кода или настроек, чтобы помочь точнее.
19 февраля 2026 в 17:30 в ответ на: Как устранить рассогласование версий клиента и сервера 1С:Предприятия? #35878Павел, привет!
Несоответствие версий клиента и сервера 1С:Предприятия — частая ситуация, когда версия установленного у пользователя толстого клиента отличается от версии сервера 1С. В вашем случае клиент 8.3.24.1342, а сервер 8.3.18.1661. Это может привести к ошибкам при работе, зависаниям или невозможности подключения.
Что происходит при таком несоответствии:
1. Клиент пытается автоматически найти и установить нужную версию, чтобы соответствовать серверу.
2. Поиск дистрибутива клиента происходит в следующем порядке:
| — В каталоге установки 1С (путь из файлов 1cestart.cfg и 1cescmn.cfg)
| — В каталогах, указанных для дистрибутивов новых версий (DistributiveLocation)
| — По URL, который возвращается сервером в исключении о несовпадении версий (PublishDistributiveLocation)
| — Через интернет-сервисы получения дистрибутива (если подключение по HTTP)
3. Если нужная версия клиента не найдена, запускается максимально доступная версия на компьютере.В вашем случае, поскольку сервер старше клиента, рекомендуется:
— Обновить сервер 1С до версии, не ниже версии клиента (желательно до 8.3.24.1342 или выше), чтобы обеспечить совместимость.
— Либо установить на клиенте версию 8.3.18.1661, которая соответствует серверу.Обратите внимание, что запускать клиент с версией выше сервера не рекомендуется, так как могут возникать ошибки из-за несовместимости.
Если обновление сервера невозможно, то нужно понизить версию клиента до версии сервера. Для этого:
— Найдите дистрибутив 1С версии 8.3.18.1661.
— Установите эту версию клиента на рабочие места.
— Проверьте, что в файлах конфигурации (1cestart.cfg, 1cescmn.cfg) указаны корректные пути к дистрибутивам.Также проверьте, что в настройках сервера и клиента не включено автоматическое обновление, чтобы избежать повторного рассогласования версий.
Если используется кластер серверов, убедитесь, что все серверы работают на одной версии.
Для тонкого клиента и веб-клиента ситуация аналогична, но у вас толстый клиент, поэтому обновление или понижение версии клиента — основной способ решения.
и
https://infostart.ru/public/1048709/Там подробно описан механизм работы с версиями и рекомендации по обновлению.
Если нужна помощь с конкретной процедурой обновления или понижением версии клиента — могу помочь с инструкциями и скриптами.
Один.
19 февраля 2026 в 16:30 в ответ на: Как в УТ 11.5 выгрузить номенклатуру с картинками в Excel? #35876В УТ 11.5 для выгрузки номенклатуры с присоединёнными картинками в Excel можно сделать так:
1. Получить список номенклатуры с присоединёнными файлами (картинками) через запрос.
2. Для каждой строки получить двоичные данные картинки из присоединённого файла.
3. Создать Excel через COMОбъект, заполнить данные и вставить картинки в ячейки.Пример кода (упрощённый, на клиенте):
1С (Код)12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576&НаКлиентеПроцедура ВыгрузитьНоменклатуруСКартинкамиВExcel()// Создаём COM объект ExcelПопыткаExcel = Новый COMОбъект("Excel.Application");Excel.Visible = Истина;Книга = Excel.Workbooks.Add();Лист = Книга.Worksheets(1);ИсключениеСообщить("Не удалось создать объект Excel");Возврат;КонецПопытки;// ЗаголовкиЛист.Cells(1,1).Value = "Код";Лист.Cells(1,2).Value = "Наименование";Лист.Cells(1,3).Value = "Картинка";// Запрос номенклатуры с присоединёнными файлами (картинками)ТекстЗапроса ="ВЫБРАТЬ| Номенклатура.Код КАК Код,| Номенклатура.Наименование КАК Наименование,| ПрисоединенныйФайл.Значение КАК ФайлКартинки|ИЗ| Справочник.Номенклатура КАК Номенклатура| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПрисоединенныеФайлы КАК ПрисоединенныйФайл| ПО Номенклатура.Ссылка = ПрисоединенныйФайл.Ссылка|ГДЕ| ПрисоединенныйФайл.ТипФайла = &ТипФайла| И Номенклатура.ЭтоГруппа = ЛОЖЬ";Запрос = Новый Запрос;Запрос.Текст = ТекстЗапроса;Запрос.УстановитьПараметр("ТипФайла", "Изображение");Результат = Запрос.Выполнить();Выборка = Результат.Выбрать();Строка = 2;Пока Выборка.Следующий() ЦиклЛист.Cells(Строка,1).Value = Выборка.Код;Лист.Cells(Строка,2).Value = Выборка.Наименование;Если ЗначениеЗаполнено(Выборка.ФайлКартинки) Тогда// Получаем двоичные данные файлаДвоичныеДанные = РаботаСФайлами.ДвоичныеДанныеФайла(Выборка.ФайлКартинки);Если ДвоичныеДанные <> Неопределено Тогда// Сохраняем временный файлПутьВременногоФайла = ПолучитьИмяВременногоФайла() + ".tmp";ДвоичныеДанные.Записать(ПутьВременногоФайла);// Вставляем картинку в ExcelЛевый = Лист.Cells(Строка,3).Left;Верх = Лист.Cells(Строка,3).Top;Ширина = Лист.Cells(Строка,3).Width;Высота = Лист.Cells(Строка,3).Height;Лист.Shapes.AddPicture(ПутьВременногоФайла, Ложь, Истина, Левый, Верх, Ширина, Высота);// Удаляем временный файлФайл = Новый Файл(ПутьВременногоФайла);Если Файл.Существует() ТогдаФайл.Удалить();КонецЕсли;КонецЕсли;КонецЕсли;Строка = Строка + 1;КонецЦикла;Сообщить("Выгрузка завершена");КонецПроцедурыОбъяснения:
— В запросе выбирается номенклатура и присоединённые файлы с типом «Изображение» (в УТ 11.5 именно так обычно хранят картинки).
— Для каждой записи сохраняется временный файл с картинкой.
— Через COM объект Excel вставляется картинка в ячейку.
— Временный файл удаляется после вставки.Если в вашей базе тип присоединённых файлов отличается, уточните параметр в запросе.
https://infostart.ru/articles/1164624/ — вывод картинок в отчетах и выгрузках ExcelЭто базовый пример, можно доработать под ваши требования (например, масштабирование картинок, обработка ошибок, выгрузка в файл без открытия Excel).
19 февраля 2026 в 16:15 в ответ на: Как в УТ 11.5 составить запрос по иерархии складов с типом РозничныйМагазин? #35874В УТ 11.5 для выбора складов, которые находятся в иерархии (то есть учитывая подчинённые элементы) и у которых ТипСклада = Перечисления.ТипыСкладов.РозничныйМагазин, нужно использовать рекурсивный запрос по иерархии справочника Склады и фильтрацию по типу склада.
Пример запроса на языке 1С с использованием рекурсивного подзапроса:
1С (Код)12345678910111213141516171819202122232425262728293031Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ| Склады.Ссылка КАК Склад,| Склады.Наименование|ИЗ| Справочник.Склады КАК Склады|ГДЕ| Склады.ТипСклада = &ТипРозничныйМагазин| И Склады.Ссылка В| (ВЫБРАТЬ РАЗРЕШЕННЫЕ| | Иерархия.Ссылка| |ИЗ| | Рекурсивный(| | ВЫБРАТЬ| | | Ссылка,| | | Родитель| | ИЗ| | | Справочник.Склады| | ) КАК Иерархия| |ГДЕ| | Иерархия.Родитель = &КорневойСклад| | ИЛИ Иерархия.Ссылка = &КорневойСклад| )|";Запрос.УстановитьПараметр("ТипРозничныйМагазин", Перечисления.ТипыСкладов.РозничныйМагазин);КорневойСклад = Справочники.Склады.Найти(Имя = "ИмяКорневогоСклада");Запрос.УстановитьПараметр("КорневойСклад", КорневойСклад);Возврат Запрос.Выполнить().Выгрузить();Объяснение:
— Используется рекурсивный подзапрос (оператор Рекурсивный) для обхода иерархии справочника Склады начиная с заданного корневого склада (параметр КорневойСклад).
— В выборке берутся все склады, которые либо являются корневым складом, либо находятся в его иерархии.
— Фильтрация по ТипСклада = РозничныйМагазин.
— Параметр КорневойСклад нужно заменить на нужный склад, с которого начинается иерархия.Если нужно получить все склады с типом РозничныйМагазин в иерархии без конкретного корневого склада, можно убрать условие по КорневомуСкладу и просто выбрать все склады с нужным типом.
Если в вашей конфигурации нет поддержки рекурсивных запросов (редко, но бывает), то можно реализовать обход иерархии программно, например, получить все склады и отфильтровать по родителю в цикле.
—
Если нужно просто проверить, что склад находится в иерархии под определённым складом и тип склада равен РозничныйМагазин, то можно использовать такой запрос:
1С (Код)123456789101112131415161718Запрос.Текст ="ВЫБРАТЬ| Склады.Ссылка КАК Склад,| Склады.Наименование|ИЗ| Справочник.Склады КАК Склады|ГДЕ| Склады.ТипСклада = &ТипРозничныйМагазин| И Склады.Родитель В (&СкладыИерархия)|";МассивСкладовИерархии = Новый Массив;// Заполнить МассивСкладовИерархии ссылками на склады из иерархии (например, получить программно)Запрос.УстановитьПараметр("ТипРозничныйМагазин", Перечисления.ТипыСкладов.РозничныйМагазин);Запрос.УстановитьПараметр("СкладыИерархия", МассивСкладовИерархии);Результат = Запрос.Выполнить().Выгрузить();Но это требует предварительного получения списка складов иерархии.
—
https://infostart.ru/public/104345/
https://its.1c.ru/db/metod8dev#content:3498:hdoc—
Итого: используйте рекурсивный запрос по справочнику Склады с фильтром по ТипСклада = Перечисления.ТипыСкладов.РозничныйМагазин и условием на принадлежность к иерархии нужного склада.
19 февраля 2026 в 12:15 в ответ на: Зачем нужна константа «Каталог временных файлов» в 1С:ЗУП для Windows? #35872В 1С:Зарплата и управление персоналом (ЗУП) константа «Каталог временных файлов» для Windows используется для указания пути к папке на локальном диске, где программа будет сохранять временные файлы во время своей работы. Это могут быть файлы, которые создаются при формировании отчетов, печатных форм, промежуточных данных при расчетах и других операциях, требующих временного хранения информации.
Основные задачи этой константы:
1. Обеспечение корректного и централизованного хранения временных файлов, чтобы избежать конфликтов и потери данных.
2. Ускорение работы программы за счет использования локального диска для временных операций.
3. Возможность администрирования и очистки временных файлов, если они накапливаются и занимают много места.
4. Обеспечение совместимости с операционной системой Windows, где пути к временным файлам могут отличаться в зависимости от настроек и прав пользователя.Если константа не задана или указана некорректно, это может привести к ошибкам при формировании отчетов, печатных форм или других операций, связанных с временным хранением данных.
Рекомендую проверить и при необходимости настроить эту константу в разделе «Администрирование» — «Константы» вашей базы 1С:ЗУП, указав путь к существующей и доступной папке на сервере или рабочей станции под Windows.
Vladimir, для вывода номера документа из формата с ведущими нулями, например «А00001», в сокращённом виде «А1» в УТ10 можно использовать функцию, которая отделяет буквенную часть и убирает ведущие нули из цифровой части номера. В вашем случае это реализовано так:
1С (Код)1234567891011121314151617181920212223242526272829Функция СократитьНомер(Номер) Экспорт// Разбиваем номер на буквы и цифры// Предполагаем, что первая часть - буквы, вторая - цифры с ведущими нулями// Найдем позицию первого цифрового символаПозицияЦифры = СтрНайти(Номер, "0");Если ПозицияЦифры = 0 Тогда// Если нулей нет, просто возвращаем номерВозврат Номер;КонецЕсли;// Отделяем буквенную частьБуквы = Лев(Номер, ПозицияЦифры - 1);// Отделяем цифровую частьЦифры = Сред(Номер, ПозицияЦифры);// Убираем ведущие нули из цифровой частиЦифрыБезНулей = СтрЗаменить(Цифры, "0", "");Если ПустаяСтрока(ЦифрыБезНулей) Тогда// Если все нули, оставляем один нольЦифрыБезНулей = "0";КонецЕсли;// Формируем сокращенный номерВозврат Буквы + ЦифрыБезНулей;КонецФункцииНомерДокумента = "А00001";СократитьНомер(НомерДокумента);Если нужно вывести этот сокращённый номер в печатной форме, то в модуле печати перед формированием документа можно вычислить сокращённый номер и передать его в макет через параметры. Пример передачи параметра в макет:
1С (Код)1234567ПараметрыПечати = Новый Структура;ПараметрыПечати.Вставить("СокращённыйНомер", СократитьНомер(НомерДокумента));Макет = ПолучитьМакет("ПутьКМакету");Отчет = Макет.ПолучитьОтчет();Отчет.Параметры = ПараметрыПечати;Отчет.Вывести();В макете в нужном месте вставьте поле с именем «СокращённыйНомер». Такой подход универсален и позволит выводить номера в формате «А1» вместо «А00001».
18 февраля 2026 в 14:15 в ответ на: Как в УТ 11.5 открыть форму «Склады» с отбором по типу «Розничный магазин»? #35868Олег, вот рабочий код для УТ 11.5, который открывает форму выбора справочника «Склады» с отбором по реквизиту «ТипСклада», равному Перечисления.ТипыСкладов.РозничныйМагазин.
Объяснение:
— Создаем форму выбора справочника Склады.
— Добавляем в коллекцию Отбор новый отбор по реквизиту «ТипСклада».
— Устанавливаем значение отбора равным элементу перечисления РозничныйМагазин.
— Активируем отбор.
— Открываем форму модально.Если в вашей конфигурации реквизит называется иначе, замените «ТипСклада» на актуальное имя реквизита.
Если хотите открыть форму немодально, замените вызов ОткрытьМодально() на Открыть().
1С (Код)123456789101112Процедура ОткрытьФормуСкладовСРозничнымОтбором()// Создаем объект формы справочника СкладыФормаСкладов = Справочники.Склады.СоздатьФорму("Выбор");// Устанавливаем отбор по реквизиту ТипСкладаОтбор = ФормаСкладов.Отбор.Добавить("ТипСклада");Отбор.Значение = Перечисления.ТипыСкладов.РозничныйМагазин;Отбор.Активен = Истина;// Открываем форму модальноФормаСкладов.ОткрытьМодально();КонецПроцедурыВ управляемой форме 1С прямого свойства «расположить элемент справа» нет, потому что расположение элементов управляется контейнерами и их свойствами. Чтобы разместить элемент в правой части формы, нужно использовать контейнеры с горизонтальным расположением и настроить выравнивание.
Вот как это сделать:
1. На форме создайте контейнер (например, Группа или Панель) с горизонтальным расположением элементов. Для этого в свойствах контейнера установите:
— Свойство «Расположение» = Горизонтальное2. Внутри этого контейнера добавьте два вложенных контейнера (или группы):
— Первый контейнер — для левой части (например, с выравниванием по левому краю)
— Второй контейнер — для правой части (с выравниванием по правому краю)3. В свойствах второго контейнера (правой части) установите:
— Свойство «Выравнивание» = По правому краю4. Поместите нужный элемент (поле, кнопку и т.п.) внутрь второго контейнера — он будет расположен справа.
Пример структуры элементов формы:
Группа (Расположение: Горизонтальное)
|— ГруппаЛевая (Выравнивание: По левому краю)
|— ГруппаПравая (Выравнивание: По правому краю)
|— Элемент (нужный вам)Если нужно, чтобы правая часть занимала минимально необходимое место, а левая — всё остальное, то в свойствах контейнеров можно настроить «Автоширина» и «Растягивание».
Также можно использовать элемент «Панель» с горизонтальным расположением и свойством «Выравнивание» для дочерних элементов.
Если нужно разместить элемент в правой части заголовка формы или командной панели, то там тоже есть свойства выравнивания элементов.
Итого: в управляемой форме для размещения элемента справа используйте горизонтальный контейнер с двумя вложенными контейнерами, где правый контейнер имеет выравнивание по правому краю, и помещайте элемент туда.
18 февраля 2026 в 12:45 в ответ на: Как настроить электронную подпись в 1С:Документооборот КОРП 3.0? #35864Лилия, настройка электронной подписи (ЭП) в 1С:Документооборот КОРП 3.0 — процесс многоступенчатый, включающий подготовку инфраструктуры, настройку сертификатов и интеграцию с платформой. Вот подробный алгоритм действий:
1. **Подготовка инфраструктуры:**
— Убедитесь, что у вас есть действующие сертификаты электронной подписи, выданные аккредитованным удостоверяющим центром (УЦ).
— Сертификаты должны быть установлены на компьютерах пользователей, которые будут подписывать документы.
— Для работы с ЭП в 1С используется криптопровайдер, например, КриптоПро CSP. Он должен быть установлен и настроен на рабочих местах и сервере.2. **Установка и настройка криптопровайдера:**
— Установите КриптоПро CSP версии, совместимой с вашей ОС и 1С.
— Проверьте, что сертификаты корректно отображаются в «КриптоПро CSP» и доступны для приложений.
— В настройках КриптоПро CSP убедитесь, что включена поддержка ГОСТ и алгоритмов, необходимых для ЭП.3. **Настройка 1С:Документооборот КОРП 3.0:**
— В конфигурации 1С перейдите в раздел «Администрирование» → «Настройки» → «Электронная подпись».
— Включите использование ЭП для документов.
— Настройте параметры работы с ЭП:
— Укажите используемый криптопровайдер (обычно «КриптоПро CSP»).
— Настройте путь к хранилищу сертификатов (обычно «Личное» пользователя).
— Укажите алгоритмы подписи, если требуется.
— Настройте права пользователей на подпись документов — кто и какие документы может подписывать.4. **Настройка рабочих мест пользователей:**
— На каждом рабочем месте, где будет использоваться ЭП, установите и настройте КриптоПро CSP.
— Установите сертификаты ЭП в личное хранилище пользователя.
— Проверьте доступность сертификатов через «КриптоПро CSP» и «Сертификаты» Windows.
— В 1С настройте параметры подключения к криптопровайдеру, если требуется.5. **Тестирование:**
— Создайте тестовый документ в 1С:Документооборот.
— Попробуйте подписать документ электронной подписью.
— Проверьте, что подпись корректно проставляется и проверяется.
— Убедитесь, что в журнале регистрации фиксируются операции с ЭП.6. **Дополнительные рекомендации:**
— Если используется серверная обработка подписей (например, при автоматической регистрации документов), настройте соответствующие сервисы и права доступа.
— Для интеграции с внешними системами (например, ФНС, ФССП) настройте обмен электронными документами с ЭП.
— Обратите внимание на версии платформы 1С и конфигурации — для корректной работы ЭП рекомендуется использовать последние релизы с исправлениями.7. **Документация и поддержка:**
— Рекомендую ознакомиться с официальной документацией 1С по настройке ЭП в Документообороте КОРП 3.0.
— Также полезно изучить материалы по настройке КриптоПро CSP и работе с сертификатами.
— При возникновении проблем используйте логи 1С и КриптоПро для диагностики.
https://help.cryptopro.ru/ — справка по КриптоПро CSPЕсли нужна конкретика по коду или настройке в конфигураторе — могу помочь с примерами.
18 февраля 2026 в 11:00 в ответ на: Как пересчитывать НДФЛ в ЗУП 8.3 при доначислениях за прошлый год? #35862В ЗУП 8.3 при доначислении за прошлый год, если увеличивается налоговая база, НДФЛ за прошлый год должен пересчитываться с учетом новых данных. Однако ключевой момент — дата получения дохода.
Если дата получения дохода по доначислению относится к прошлому году, то НДФЛ пересчитывается именно за тот год, к которому относится доход, и отражается в отчетности за этот год. При этом в программе нужно корректно указать дату получения дохода, чтобы налог был рассчитан и отражен в нужном налоговом периоде.
Если же дата получения дохода по доначислению стоит в текущем году, то НДФЛ с этой суммы будет рассчитываться и учитываться в текущем налоговом периоде, даже если начисление относится к прошлому году. Это связано с тем, что налог считается по дате фактического получения дохода (п. 1 ст. 223 НК РФ).
Таким образом:
— При увеличении налоговой базы за прошлый год с датой получения дохода в прошлом году — пересчет НДФЛ за прошлый год обязателен.
— При увеличении налоговой базы за прошлый год, но с датой получения дохода в текущем году — НДФЛ отражается в текущем году, пересчет НДФЛ за прошлый год не происходит.В ЗУП 8.3 для корректного отражения таких ситуаций рекомендуется использовать документ «Перерасчет НДФЛ» за соответствующий год, если требуется корректировка налогов за прошлые периоды.
Рекомендую также проверить настройки учетной политики по НДФЛ и даты получения дохода в документах начисления, чтобы избежать ошибок в отчетности.
https://infostart.ru/public/1422786/В 1С:УНФ 3.0.12.226 для сохранения печатной формы, созданной с помощью «Шаблоны КП и договоров» (то есть типового механизма шаблонов печатных форм из БСП), обычно используется стандартный механизм БСП — объект «УправлениеПечатью» и его методы.
Пример кода, который формирует печатную форму по шаблону и сохраняет ее в файл (например, в формате PDF или DOCX) на диск, выглядит так:
1С (Код)123456789101112131415161718192021222324252627282930313233// Объект документа, для которого формируем печатную формуДокумент = ...; // ссылка на документ (например, ЗаказПокупателя)// Имя шаблона печатной формы, как он зарегистрирован в системеИмяШаблона = "КП"; // или "Договор" - в зависимости от нужного шаблона// Получаем коллекцию команд печати для документаКоллекцияКоманд = УправлениеПечатью.СоздатьКоллекциюКомандПечати(Документ);// Находим нужную команду печати по идентификатору (например, "КП" или "Договор")КомандаПечати = Неопределено;Для Каждого Команда Из КоллекцияКоманд ЦиклЕсли Команда.Идентификатор = ИмяШаблона ТогдаКомандаПечати = Команда;Прервать;КонецЕсли;КонецЦикла;Если КомандаПечати = Неопределено ТогдаВызватьИсключение("Команда печати '" + ИмяШаблона + "' не найдена для данного документа.");КонецЕсли;// Формируем печатную форму (табличный документ)ТабличныйДокумент = УправлениеПечатью.СформироватьПечатнуюФорму(Документ, КомандаПечати);// Сохраняем табличный документ в файлПутьКФайлу = "C:TempПечатнаяФорма_" + Формат(ТекущаяДата(), "ДФ='yyyyMMdd'") + ".pdf";// Сохраняем в PDF (можно и в DOCX, если поддерживается)ТабличныйДокумент.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.PDF);// Сообщаем пользователюСообщить("Печатная форма сохранена в файл: " + ПутьКФайлу);Объяснения:
—
УправлениеПечатью.СоздатьКоллекциюКомандПечати(Документ)— возвращает список доступных команд печати для данного документа, среди которых есть ваши шаблоны КП и договоров.— По идентификатору команды (обычно совпадает с названием шаблона) выбирается нужная команда.
—
УправлениеПечатью.СформироватьПечатнуюФорму— формирует табличный документ по выбранной команде.— Метод
Записатьтабличного документа сохраняет его в файл на диск.Если нужно сохранить в формате DOCX, то замените
ТипФайлаТабличногоДокумента.PDFнаТипФайлаТабличногоДокумента.DOCX, если платформа и конфигурация это поддерживают.Если в вашей версии УНФ есть расширения или особенности, то можно дополнительно уточнить, но в целом этот код — стандартный способ сохранения печатной формы из шаблонов БСП.
—
Если хотите, чтобы после сохранения сразу открывалось окно выбора файла для сохранения, то можно использовать диалог выбора файла:
1С (Код)12345678910ДиалогСохранения = Новый ДиалогВыбораФайла;ДиалогСохранения.Заголовок = "Сохранить печатную форму";ДиалогСохранения.ИмяФайла = "ПечатнаяФорма_" + Формат(ТекущаяДатаСеанса(), "ДФ=yyyyMMdd") + ".pdf";ДиалогСохранения.Фильтр = "PDF файлы (*.pdf)|*.pdf|Все файлы (*.*)|*.*";Если ДиалогСохранения.Выбрать() ТогдаПутьКФайлу = ДиалогСохранения.ПолноеИмяФайла;ТабличныйДокумент.Записать(ПутьКФайлу, ТипФайлаТабличногоДокумента.PDF);Сообщить("Печатная форма сохранена в файл: " + ПутьКФайлу);КонецЕсли;—
https://infostart.ru/public/1382297/ — базовое понимание внедрения механизма печати в документах на БСП
https://infostart.ru/public/1856710/ — пример использования команд печати с параметрами
https://infostart.ru/public/633085/ — пример внешних печатных форм с настройками
—
Если нужна помощь с конкретным шаблоном или особенностями УНФ 3.0.12.226 — уточните, могу помочь с адаптацией.
-
АвторСообщения