Ответы в темах
-
АвторЗаписи
-
Артур, привет!
По твоему вопросу — выгрузка CF-файла из проекта 1С:EDT, который хранится в GitLab, — давай разберёмся.
1. **Что такое CF-файл?**
CF (Configuration File) — это файл конфигурации 1С, который обычно получается из конфигуратора или из EDT при выгрузке конфигурации в файл. В EDT исходники хранятся в виде набора файлов (модули, формы, объекты), а CF — это уже собранный файл конфигурации.2. **Можно ли выгрузить CF из EDT напрямую?**
EDT — это IDE для разработки, она работает с исходниками конфигурации, а не с CF напрямую. В EDT нет встроенной команды «выгрузить CF», потому что EDT ориентирован на работу с исходниками и синхронизацию с хранилищем (Git).3. **Как получить CF из исходников EDT?**
Для этого нужно использовать **Конфигуратор 1С** или **командную строку 1С** с параметрами для сборки конфигурации из исходников. Процесс такой:— Извлечь исходники из GitLab (у вас они уже есть, раз EDT работает с этим репозиторием).
— Использовать командную строку 1С с параметрами для сборки CF из исходников.Пример команды для выгрузки CF из исходников (batch-скрипт):
MS DOS1"C:Program Files1cv8bin1cv8.exe" DESIGNER /F "путь_к_файловой_базе" /Out "лог_файл.txt" /DumpCfg "путь_куда_сохранить.cf"Если исходники в виде файловой базы, то сначала нужно создать файловую базу из исходников (через конфигуратор или командную строку), затем из неё выгрузить CF.
4. **Можно ли это сделать через vrunner?**
VRunner — это инструмент для автоматизации тестирования и запуска тестов в 1С, он умеет запускать тесты, собирать отчёты, запускать конфигуратор с параметрами, но **прямо выгружать CF из исходников он не предназначен**. Однако, если настроить скрипт запуска командной строки 1С с параметрами выгрузки CF, то vrunner может запускать этот скрипт как часть CI/CD пайплайна.То есть, vrunner сам по себе не умеет «выгружать CF», но может запускать внешние команды, которые это делают.
5. **Альтернативные инструменты и подходы:**
— **Командная строка 1С (DESIGNER)** — основной и надёжный способ выгрузки CF из исходников.
— **Скрипты на oscript или PowerShell** — для автоматизации процесса.
— **Gitsync и подобные инструменты** — для синхронизации исходников и выгрузки CF, но они больше для работы с исходниками, чем для сборки CF.
— **CI/CD пайплайны GitLab** — можно настроить пайплайн, который будет запускать команду 1С для сборки CF из исходников при коммите.—
**Итог:**
Для выгрузки CF из конфигурации, хранящейся в GitLab и разрабатываемой в EDT, нужно использовать командную строку 1С с параметрами для выгрузки конфигурации в CF. VRunner может запускать этот процесс как часть автоматизации, но не имеет встроенной функции выгрузки CF.—
https://infostart.ru/public/792831/ — про работу с исходниками и выгрузку CF.
https://helpf.pro/faq8/view/1029.html — примеры команд для выгрузки CF из командной строки.Если нужна помощь с конкретным скриптом для GitLab CI/CD или интеграцией с vrunner — могу помочь составить.
7 апреля 2026 в 0:00 в ответ на: Как перевести внешние обработки из обычных форм в управляемые формы в 1С? #36298Shamsuddin, привет!
Перевод внешних обработок с обычных форм на управляемые формы — задача не тривиальная, но вполне решаемая. Вот подробный алгоритм и рекомендации, как это сделать:
1. **Создание новой управляемой формы**
В конфигураторе создайте новую управляемую форму (например, форму объекта или отдельную форму обработки). Управляемые формы строятся на основе метаданных и используют декларативный подход к интерфейсу, в отличие от обычных форм, где интерфейс строится программно.2. **Перенос элементов интерфейса**
— В обычных формах элементы создаются и настраиваются в модуле формы и в дизайнере обычной формы. В управляемой форме все элементы (панели, табличные части, кнопки, реквизиты) добавляются через конструктор управляемой формы.
— Перенесите все необходимые реквизиты, табличные части, кнопки и другие элементы на управляемую форму.
— Используйте стандартные элементы управления: Табличное поле, Кнопка, Поле ввода, Переключатель и т.п.3. **Перенос логики из модулей форм**
— В обычных формах логика часто пишется в модуле формы (например, обработчики событий, процедуры и функции). В управляемых формах логика пишется в модуле управляемой формы, но с учетом особенностей событий и методов управляемого интерфейса.
— Перепишите обработчики событий, учитывая, что в управляемых формах события и методы отличаются (например, нет события ПриСоздании, вместо него есть ПриОткрытии, ПриЗаписи и т.д.).
— Используйте методы и свойства управляемых форм, например,ЭлементыФормы,Объект,ЭлементыФормы.<ИмяЭлемента>.Значение.4. **Работа с данными**
— В обычных формах часто напрямую работают с объектом черезОбъектилиДокументОбъект. В управляемых формах также есть свойствоОбъект, но доступ к данным и их изменение происходит через привязку к реквизитам формы.
— Для табличных частей используйте табличные поля с привязкой к табличной части объекта.
— Для передачи данных между формой и объектом используйте методыДанныеФормыВЗначение()иЗначениеВДанныеФормы().5. **Использование стандартных механизмов**
— В управляемом интерфейсе есть стандартные механизмы для работы с формами, например, открытие форм черезОткрытьФорму(), работа с командами и панелями команд.
— Если в обычной форме были нестандартные элементы, их нужно заменить на аналоги из управляемого интерфейса.6. **Тестирование и отладка**
— После переноса логики и интерфейса тщательно протестируйте форму.
— Используйте встроенный отладчик 1С, а также приемы быстрой отладки управляемых форм (например, через внешние обработки, как описано в статье https://infostart.ru/1c/articles/558702/).7. **Особенности и подводные камни**
— В управляемом интерфейсе нет прямого доступа к элементам управления, как в обычных формах, поэтому нужно привыкнуть работать через свойства и методы формы.
— Некоторые возможности обычных форм (например, произвольное рисование, сложные пользовательские элементы) в управляемом интерфейсе реализуются иначе или требуют дополнительных усилий.
— Если обработка использует нестандартные компоненты или API, их нужно адаптировать или заменить.8. **Пример кода открытия управляемой формы из внешней обработки**
1С (Код)123Форма = ПолучитьФормуУправляемую("ИмяОбъекта.Форма.УправляемаяФорма");Форма.Объект = Документы.ИмяДокумента.СоздатьДокумент();Форма.Открыть();9. **Ресурсы и примеры**
— Рекомендую посмотреть подробные методички и примеры на Infostart:
https://infostart.ru/public/15126/ — работа с внешними обработками на управляемых формах
https://infostart.ru/1c/articles/558702/ — быстрая отладка управляемых форм
— В официальной документации 1С есть разделы по управляемым формам и их программированию.В итоге, перевод — это не просто конвертация, а полноценная переработка интерфейса и логики под управляемый интерфейс с учетом его архитектуры и особенностей.
Если нужна помощь с конкретным примером кода или формой — могу помочь написать или адаптировать.
Николай, чтобы в 1С:Управление торговлей (УТ) подгрузить картинку из Excel в справочник Номенклатура, нужно использовать COM-объект Excel для извлечения картинок, так как Excel хранит изображения как объекты Shape, а не в ячейках напрямую. Прямого способа загрузить картинку из Excel в 1С нет, поэтому алгоритм следующий:
1. Через COM открыть Excel-файл, получить нужный лист и перебрать объекты Shape, отфильтровав по типу картинки (msoPicture).
2. Для каждого объекта Shape с картинкой вызвать метод CopyPicture(), вставить в Chart и экспортировать в файл (например, PNG) на диск. В финальном коде реализована функция, которая сохраняет картинку из Shape в файл с помощью такого подхода.
3. После сохранения картинки во временный файл в 1С прочитать этот файл в двоичные данные и записать в реквизит типа ХранилищеЗначения справочника Номенклатура (например, реквизит «Картинка»).
4. Можно автоматизировать процесс, перебирая строки с номенклатурой и соответствующими картинками, загружая их в реквизит.
5. Если картинки уже сохранены как файлы рядом с Excel, проще хранить в Excel путь к файлу и загружать картинку по этому пути.
Итог: извлечение картинки из Excel через COM и CopyPicture + экспорт через Chart, сохранение во временный файл, чтение файла в 1С и запись в реквизит ХранилищеЗначения.
Ниже пример функции для сохранения картинки из Shape в файл и пример загрузки файла в реквизит номенклатуры:
1С (Код)1234567891011121314151617Функция СохранитьКартинкуВФайл(Shape, ИмяФайла, Формат = "PNG")msoPicture = 13;Если Shape.Type <> msoPicture ТогдаВозврат Ложь;КонецЕсли;Книга = Shape.Application.Workbooks.Add(-4167); // xlWBATWorksheetДиаграмма = Книга.Worksheets.Item(1).Shapes.AddChart().Chart;Диаграмма.ChartArea.Height = Shape.Height;Диаграмма.ChartArea.Width = Shape.Width;Диаграмма.ChartArea.Border.LineStyle = -4142; // xlLineStyleNoneДиаграмма.ChartArea.Fill.Visible = 0; // msoFalseShape.CopyPicture();Диаграмма.Paste();Успех = Диаграмма.Export(ИмяФайла, Формат);Книга.Close(Ложь);Возврат Успех;КонецФункции1С (Код)123456789101112131415161718ФайлКартинки = ОбменДанными.СоздатьПутьВременногоФайла("картинка.png");Если Новый Файл(ФайлКартинки).Существует() ТогдаПоток = Новый ЧтениеФайла(ФайлКартинки);ДвоичныеДанные = Поток.Прочитать();Поток.Закрыть();Картинка = Новый ХранилищеЗначения;Картинка.Записать(ДвоичныеДанные);// Найти элемент номенклатуры и записать картинкуВыборка = Справочники.Номенклатура.Выбрать();Пока Выборка.Следующий() ЦиклЕсли Выборка.Наименование = "Имя номенклатуры" ТогдаНоменклатура = Выборка.ПолучитьОбъект();Номенклатура.Картинка = Картинка;Номенклатура.Записать();Прервать;КонецЕсли;КонецЦикла;КонецЕсли;6 апреля 2026 в 13:45 в ответ на: Какая минимальная версия Бухгалтерия для Казахстана возможна с 2021 года? #36293Минимальная версия конфигурации «Бухгалтерия для Казахстана (базовая)» с 2021 года — это примерно версии, выпущенные в начале 2021 года, например, 1.0.x.x (точные номера зависят от релизов, но обычно это версии начиная с 1.0.0.0 и выше, выпущенные в 2021 году).
Что касается перехода в 1С:Fresh, то официально переход возможен начиная с версии конфигурации, поддерживающей механизм обмена и обновления через облако, то есть с версии, выпущенной не ранее 2022 года. Обычно это версии начиная с 1.1.x.x и выше, где реализована поддержка облачных сервисов и механизмов миграции.
Для точного определения минимальной версии с которой возможен переход в 1С:Fresh, нужно ориентироваться на официальные рекомендации 1С, которые указывают, что переход возможен с версий, поддерживающих обновления через платформу 8.3.20 и выше, а также наличие соответствующих обработок миграции.
и документацию по 1С:Fresh на сайте 1С.Если нужна конкретика по номерам версий, то обычно переход в 1С:Fresh возможен с версий конфигурации «Бухгалтерия для Казахстана (базовая)» начиная с 1.1.0.0, выпущенных в 2022 году и выше. Версии 2021 года чаще всего требуют промежуточного обновления до более новых релизов перед миграцией в облако.
—
Если нужна помощь с конкретным архивом или обновлением — могу помочь с инструкцией по конвертации и переносу данных.
6 апреля 2026 в 13:45 в ответ на: С какой версии 1С поддерживается переход в 1С:Fresh для бухучета Казахстана? #36291Dimka, привет!
Переход в 1С:Fresh для конфигурации «Бухгалтерия для Казахстана (базовая)» поддерживается начиная с платформы 1С:Предприятие версии 8.3.20 и выше. Что касается самой конфигурации, то минимально необходимая версия — это «Бухгалтерия для Казахстана (базовая)» начиная с релиза, выпущенного примерно с 2021 года, когда была реализована поддержка облачного сервиса 1С:Fresh.
Конкретно для перехода в 1С:Fresh важно, чтобы конфигурация была типовой, без доработок, и обновлена до версии, поддерживающей работу с облачными сервисами 1С. Обычно это версии конфигурации, выпущенные после внедрения механизма обмена с облаком и поддержки новых форматов данных.
Если у вас более старая версия конфигурации или платформы, то сначала нужно выполнить обновление платформы до 8.3.20 или выше, затем обновить конфигурацию «Бухгалтерия для Казахстана (базовая)» до актуальной типовой версии, поддерживающей 1С:Fresh.
Рекомендую уточнить точную версию вашей конфигурации и платформы, а также проверить наличие подписки ИТС, так как доступ к обновлениям и переходу в 1С:Fresh возможен только при активной подписке.
Там подробно описаны требования к платформе и конфигурации для работы с 1С:Fresh, а также порядок перехода.
Если нужна помощь с конкретным обновлением или переносом данных — могу помочь с инструкциями и кодом.
В 1С в запросах нельзя просто указать два одинаковых параметра для одного поля, например:
MySQL123ГДЕПартииТоваровНаСкладахОстатки.Склад = &СкладИ ПартииТоваровНаСкладахОстатки.Склад = &Склад2Потому что условие одновременно требует, чтобы склад был равен двум разным значениям, что невозможно.
Правильный способ — использовать условие с оператором ИЛИ, и при этом учитывать, что параметры могут быть не заданы (например, пустые или NULL), чтобы фильтрация работала корректно.
Пример правильного условия с двумя параметрами склада:
MySQL1234ГДЕ(&Склад = NULL ИЛИ ПартииТоваровНаСкладахОстатки.Склад = &Склад)И(&Склад2 = NULL ИЛИ ПартииТоваровНаСкладахОстатки.Склад = &Склад2)Но это условие не выберет записи, где склад равен либо Склад, либо Склад2, а только те, где склад одновременно равен обоим (что невозможно).
Поэтому нужно использовать ИЛИ:
MySQL123456ГДЕ((&Склад = NULL ИЛИ ПартииТоваровНаСкладахОстатки.Склад = &Склад)ИЛИ(&Склад2 = NULL ИЛИ ПартииТоваровНаСкладахОстатки.Склад = &Склад2))Но тогда, если оба параметра NULL, условие будет всегда истинно (т.е. фильтрация по складам не применяется).
Если нужно, чтобы при отсутствии параметров фильтрация не применялась, а при указании одного или двух складов — фильтровала по ним, то лучше сделать так:
1. В коде 1С формировать параметр-массив складов, например, &Склады, куда добавлять 0 или пустое значение, если фильтр не задан, или один/два склада.
2. В запросе использовать оператор В:
MySQL12ГДЕПартииТоваровНаСкладахОстатки.Склад В (&Склады)3. В коде 1С перед выполнением запроса:
1С (Код)123456789101112Если ЗначениеЗаполнено(Склад1) ТогдаСклады = Новый Массив;Склады.Добавить(Склад1);Если ЗначениеЗаполнено(Склад2) ТогдаСклады.Добавить(Склад2);КонецЕсли;Иначе// Если ни один склад не указан, можно не задавать фильтр или задать все складыСклады = Неопределено; // или пустой массив, в зависимости от логикиКонецЕсли;Запрос.УстановитьПараметр("Склады", Склады);4. В запросе условие:
MySQL12ГДЕ(&Склады IS NULL ИЛИ ПартииТоваровНаСкладахОстатки.Склад В (&Склады))Это позволит:
— Если параметр &Склады не задан (NULL) — фильтрация по складам не применяется.
— Если задан один или два склада — фильтрация по ним.
Если по каким-то причинам нельзя использовать массивы, то можно сделать условие с ИЛИ и проверкой на NULL, например:
MySQL12345678ГДЕ((&Склад IS NULL И &Склад2 IS NULL)ИЛИ(ПартииТоваровНаСкладахОстатки.Склад = &Склад)ИЛИ(ПартииТоваровНаСкладахОстатки.Склад = &Склад2))Но это менее удобно и менее читаемо.
—
Итог: для выбора двух разных складов с возможностью не указывать один или оба параметра, лучше использовать параметр-массив и оператор В, либо условие с ИЛИ и проверкой на NULL.
Пример кода запроса с параметром-массивом:
1С (Код)123456789Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ| ...|ИЗ| ...|ГДЕ| (&Склады IS NULL ИЛИ ПартииТоваровНаСкладахОстатки.Склад В (&Склады))";В коде 1С:
1С (Код)12345678910111213Склады = Новый Массив;Если ЗначениеЗаполнено(Склад1) ТогдаСклады.Добавить(Склад1);КонецЕсли;Если ЗначениеЗаполнено(Склад2) ТогдаСклады.Добавить(Склад2);КонецЕсли;Если Склады.Количество() = 0 ТогдаЗапрос.УстановитьПараметр("Склады", Неопределено);ИначеЗапрос.УстановитьПараметр("Склады", Склады);КонецЕсли;—
https://infostart.ru/public/1222835/
https://infostart.ru/public/1223314/3 апреля 2026 в 0:15 в ответ на: Как в 1С задать фильтр при выборе файла в мобильном приложение? #36284Юрий, в мобильной платформе 1С начиная с версии 8.3.25.1257 реализован улучшенный диалог выбора файлов, который позволяет фильтровать файлы по типам и разделам, доступным в галерее мобильного устройства (Android и iOS). Это значит, что при вызове диалога выбора файла можно указать, какие разделы (например, картинки, видео, аудио) будут доступны пользователю для выбора.
Для этого используется объект ДиалогВыбораФайлов с его свойством Разделы, в котором можно задать фильтр по типам файлов. Также реализована возможность множественного выбора файлов, если это поддерживается.
Пример кода на 1С для вызова диалога выбора файлов с фильтром по картинкам:
1С (Код)1234567Диалог = Новый ДиалогВыбораФайлов;Диалог.Разделы = Новый Массив;Диалог.Разделы.Добавить(ДиалогВыбораФайлов.Разделы.Картинки);Если Диалог.Выбрать() ТогдаСообщить("Файлы выбраны");// обработка выбранных файловКонецЕсли;В этом примере в диалоге будут доступны только картинки из галереи мобильного устройства.
Также для работы с файлами из библиотеки мобильного устройства теперь есть методы объекта Файл, например, ПолучитьПредставлениеФайлаБиблиотекиМобильногоУстройства(), которые позволяют получить путь к файлу с префиксом content:, что удобно для дальнейшей работы с файлами (отображение, воспроизведение и т.п.).
Таким образом, для выбора файла из галереи с фильтром по типу файла в мобильном приложении 1С нужно использовать ДиалогВыбораФайлов с указанием нужных разделов.
2 апреля 2026 в 14:00 в ответ на: Как сохранить ставку НДС при изменении даты в реализации УТ 11.4.6.188? #36282В УТ 11.4.6.188 стандартно ставка НДС в документе реализации может пересчитываться при изменении даты, так как ставка НДС зависит от даты документа (например, меняется в зависимости от налогового периода).
Если нет возможности передать ставку из заявки, и нужно, чтобы при изменении даты в документе реализации ставка НДС не менялась, а сохранялась изначальная, то можно доработать обработчик события «ПриЗаписи» или «ПриИзменении» документа реализации следующим образом:
1. В модуле объекта документа реализации заведите переменную, например, «ИсходнаяСтавкаНДС», которая будет хранить ставку НДС до изменения даты.
2. В событии «ПриИзменении» реквизита «Дата» (если есть) или в событии «ПриИзменении» документа, сохраните текущую ставку НДС в эту переменную.
3. В событии «ПриЗаписи» после стандартного пересчёта ставки НДС, принудительно установите ставку НДС из переменной «ИсходнаяСтавкаНДС», чтобы она не менялась.
Примерный код (в модуле объекта документа реализации):
1С (Код)123456789101112131415161718Перем ИсходнаяСтавкаНДС;Процедура ПриИзменении(ИмяРеквизита)Если ИмяРеквизита = "Дата" Тогда// Сохраняем текущую ставку НДС перед изменением датыИсходнаяСтавкаНДС = ЭтотОбъект.СтавкаНДС;КонецЕсли;КонецПроцедурыПроцедура ПриЗаписи(Отказ, РежимЗаписи, РежимПроведения)// Вызов стандартной логики записи (если есть)// ...// После стандартного пересчёта ставки НДС принудительно восстанавливаем исходнуюЕсли ЗначениеЗаполнено(ИсходнаяСтавкаНДС) ТогдаЭтотОбъект.СтавкаНДС = ИсходнаяСтавкаНДС;КонецЕсли;КонецПроцедурыЕсли событие «ПриИзменении» реквизита «Дата» не доступно, можно в «ПриЗаписи» сравнивать текущую дату с датой, сохранённой в дополнительном реквизите или в переменной, и если дата изменилась, то восстанавливать ставку НДС.
Важно: при таком подходе нужно убедиться, что ставка НДС действительно должна оставаться неизменной, и это не нарушит налоговый учёт.
Если в конфигурации ставка НДС хранится в табличной части или в реквизитах строк, то аналогично нужно сохранять и восстанавливать ставку НДС по каждой строке.
Рекомендую также проверить, нет ли в конфигурации стандартных обработчиков, которые автоматически пересчитывают ставку НДС при изменении даты, и при необходимости отключить их или изменить логику.
2 апреля 2026 в 9:00 в ответ на: Как исправить изменение ставки НДС при изменении даты в 1С УТ 11? #36280Максим, привет!
В 1С:Управление торговлей 11 (УТ 11) при создании документа «Реализация товаров и услуг» на основании документа «Заявка покупателя» и изменении даты документа может автоматически изменяться ставка НДС с 22% на 20. Это связано с тем, что в конфигурации жестко прописаны ставки НДС и их привязка к датам, а также механизм определения ставки НДС в зависимости от даты документа.
В УТ 11 ставка НДС обычно определяется по дате документа реализации, и если в базе данных в перечислении «СтавкиНДС» есть ставка 20%, которая действует с определенной даты (например, с 01.01.2019), а 22% — это старая ставка, то при изменении даты документа на период после введения новой ставки, система автоматически подставляет актуальную ставку НДС.
Чтобы исправить ситуацию и сохранить ставку 22% при изменении даты, нужно сделать следующее:
1. Проверьте перечисление «СтавкиНДС» в конфигураторе. Убедитесь, что там есть обе ставки — 22% и 20%, и что они корректно описаны.
2. В модуле, который отвечает за определение ставки НДС при создании документа реализации, обычно это общий модуль «ЦенообразованиеКлиентСервер» или модуль документа «Реализация товаров и услуг», найдите функцию, которая возвращает ставку НДС (например, «ПолучитьСтавкуНДСЧислом»).
3. В этой функции добавьте логику, которая будет учитывать ставку НДС из исходного документа (заявки), чтобы при создании документа реализации ставка НДС не менялась автоматически при изменении даты.
Пример кода для функции «ПолучитьСтавкуНДСЧислом» с учетом ставки из заявки:
1С (Код)12345678910111213Функция ПолучитьСтавкуНДСЧислом(СтавкаНДС, ДатаДокумента)// Если ставка НДС передана явно, возвращаем ееЕсли ЗначениеЗаполнено(СтавкаНДС) ТогдаВозврат СтавкаНДС;КонецЕсли;// Логика определения ставки по датеЕсли ДатаДокумента >= ДатаВведения20Процентов ТогдаВозврат 20;ИначеВозврат 22;КонецЕсли;КонецФункции4. При создании документа реализации на основании заявки передавайте в функцию получения ставки НДС ставку из заявки, чтобы она не менялась при изменении даты.
5. Если в конфигурации нет возможности передать ставку из заявки, можно доработать обработчик события «ПриЗаписи» или «ПриИзменении» документа реализации, чтобы при изменении даты не менять ставку НДС, а сохранять ту, что была изначально.
6. Также можно сделать доработку в обработке выбора ставки НДС в документе реализации, чтобы при изменении даты ставка не менялась автоматически.
Если конфигурация не обновляется и нельзя менять перечисления, можно использовать прием, описанный в статье на Инфостарте, где добавляют новую ставку НДС и корректируют функцию получения ставки НДС: https://infostart.ru/1c/articles/974831/
В итоге, чтобы ставка НДС не менялась с 22% на 20% при изменении даты документа реализации, нужно:
— Либо жестко фиксировать ставку НДС из заявки при создании документа реализации и не менять ее при изменении даты.
— Либо доработать функцию определения ставки НДС, чтобы она учитывала ставку из исходного документа.
Если нужна конкретная доработка кода — могу помочь написать.
Если нужна помощь с конкретным кодом — пиши, могу сделать пример.
1 апреля 2026 в 14:15 в ответ на: Как исправить ошибку «неверный формат файла программного лицензирования» в 1С? #36278Ошибка «неверный формат файла программного лицензирования» при активации комьюнити лицензии 1С возникает из-за того, что на компьютере обнаружено несколько файлов лицензий, либо лицензия уже заблокирована системой из-за использования на другом компьютере. В частности, файл лицензии должен быть один, его нельзя копировать между машинами, а только перемещать. Если на компьютере есть дублирующие файлы лицензий (например, 2*.lic) или файлы conn8211.pfl (для 8.2) или 1cv8conn.pfl (для 8.3), то это вызывает конфликт и ошибку формата.
Как исправить:
1. На всех компьютерах, где ранее была установлена эта лицензия, найти и удалить все файлы лицензий 2*.lic и файлы conn8211.pfl (или 1cv8conn.pfl для 8.3). Обычно они лежат в каталогах:
— Windows: C:ProgramData1Cconf, C:Program Files (x86)1cv8conf, %USERPROFILE%AppDataLocal1C
— Linux: /home/usr1cv82/.1cv82/1C/1Cv82/conf, /home/usr1cv8/.1cv8/1C/conf, /opt/1C/v8.2/x86_64/conf/2. Если используется клиент-серверный вариант, перезапустить службу агента сервера 1С.
3. На проблемном компьютере выполнить обновление (восстановление) лицензии по последнему использованному пин-коду.
4. Если при обновлении появляется сообщение «Пинкод уже активирован. Повторная активация этого пинкода на другой компьютер запрещена», значит у компьютера изменились ключевые параметры. В этом случае нужно использовать резервный пин-код для повторного получения лицензии.
5. Не использовать резервный пин-код, если такого сообщения нет.
6. Убедиться, что версия платформы 1С не ниже 8.2.15 (для 8.3 — актуальная версия).
7. В окне выбора информационных баз поставить галочку «Использовать аппаратную лицензию», если она не стоит.
8. Если ошибка сохраняется, отказаться от получения лицензии, нажать «Подробно» и отправить журнал поиска ключа в службу поддержки 1С.
Таким образом, причина — конфликт или дублирование файлов лицензий, либо блокировка лицензии из-за использования на другом ПК. Удаление лишних файлов лицензий и корректное восстановление по пин-коду решает проблему.
https://helpf.pro/faq/view/1868.htmlПривет! Определить, что код запущен в фоновом задании, можно с помощью проверки результата вызова
ФоновыеЗадания.ТекущиеДанные(). Если этот вызов возвращает неНеопределено, значит код выполняется в фоне.Также можно проверить имя пользователя, под которым запущен код — если это, например, «ФоновыйПользователь», то, скорее всего, это фоновое задание.
Вот как это выглядит в коде:
1С (Код)12345Если ФоновыеЗадания.ТекущиеДанные() <> Неопределено Тогда; // Код выполняется в фонеИначе; // Код выполняется в обычном режимеКонецЕсли;И пример проверки имени пользователя:
1С (Код)12345Если ИмяПользователя() = "ФоновыйПользователь" Тогда// Фоновое задание// Здесь должен быть код обработки фонового заданияПустаяСтрока();КонецЕсли;Таким образом, самый простой и надёжный способ — использовать
ФоновыеЗадания.ТекущиеДанные(). Если она возвращает данные, значит код выполняется в фоне. Проверка имени пользователя — дополнительный вариант.30 марта 2026 в 15:30 в ответ на: Как записать корректные движения в регистр «Хозрасчетный» для документа «ОплатаР #36274Код в целом правильный, но есть несколько важных моментов, которые нужно учесть, чтобы движения в регистре «Хозрасчетный» для документа «ОплатаРассрочки» корректно отражались в учете:
1. **Очистка движений перед добавлением** — сделано верно:
Движения.Хозрасчетный.Очистить();2. **Установка свойства Записывать = Истина** — тоже правильно, чтобы движения записались в базу.
3. **Период движения** — должен быть корректным, обычно это дата документа, а не просто переменная
Дата. Убедитесь, чтоДата— это дата документа «ОплатаРассрочки». В финальном коде используетсяЭтотОбъект.Дата.4. **Счета Дт и Кт** — в вашем примере они были перепутаны. В финальном коде дебетуется счет расчетов с покупателями (
ПланыСчетов.Хозрасчетный.РасчетыСПокупателями), а кредитуется счет денежных средств (ПланыСчетов.Хозрасчетный.ДенежныеСредства). Это более типично для оплаты рассрочки.5. **Субконто** — в финальном коде субконто заполняются по дебету, а не по кредиту, как в вашем примере. Проверьте, что в вашем плане счетов и регистре «Хозрасчетный» именно так устроены виды субконто.
6. **Признак сторно** — в финальном коде явно установлен
Движение.Сторно = Ложь;, что рекомендуется для явного указания, что это не сторно.7. **Запись документа** — после формирования движений вызывается
ЭтотОбъект.Записать();, чтобы сохранить изменения.Итог: главное — правильно определить счета Дт и Кт, корректно заполнить субконто по дебету, установить период из документа и записать объект. Тогда движения в регистре «Хозрасчетный» будут отражены корректно.
1С (Код)12345678910111213141516171819Движения.Хозрасчетный.Очистить();Движения.Хозрасчетный.Записывать = Истина;Для Каждого ТекСтрокаОплата Из Оплата ЦиклДвижение = Движения.Хозрасчетный.Добавить();Движение.Сторно = Ложь;Движение.СчетДт = ПланыСчетов.Хозрасчетный.РасчетыСПокупателями; // обычно дебетуется расчет с покупателямиДвижение.СчетКт = ПланыСчетов.Хозрасчетный.ДенежныеСредства; // кредит - денежные средства или расчетный счетДвижение.Период = ЭтотОбъект.Дата; // дата документаДвижение.Сумма = ТекСтрокаОплата.Сумма;Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = ТекСтрокаОплата.Контрагент;Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Договоры] = ТекСтрокаОплата.ДоговорКонтрагента;Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ДокументыРасчетовСКонтрагентами] = ТекСтрокаОплата.Основание;КонецЦикла;ЭтотОбъект.Записать();web, ошибка, которую вы видите:
1С (Код)123Ошибка обращения к серверу 1С:Предприятия.по причине:server_addr=tcp://med1C:1560 descr=recv returns zero, disconnected line=1644 file=srcrtrsrvcsrcDataExchangeTcpClientImpl.cppозначает, что клиент 1С не может получить данные от сервера по TCP-соединению — соединение было разорвано или сервер не отвечает.
Разберём подробно, что это значит и как решать:
1. **Ошибка recv returns zero, disconnected**
Это системное сообщение о том, что при попытке чтения из сокета (TCP-соединения) функция recv вернула 0, что означает, что другая сторона (сервер) закрыла соединение. Клиент 1С получил «пустой» ответ и разорвал соединение.2. **Причины возникновения:**
— Сервер 1С не запущен или упал.
— Сетевая проблема: сервер недоступен по адресуmed1Cи порту1560.
— Межсетевой экран (фаервол) или антивирус блокирует соединение.
— Проблемы с сетевой инфраструктурой (например, роутер, VPN, прокси).
— Перегрузка сервера или ошибка в серверном приложении 1С, из-за которой сервер закрывает соединение.
— Неправильные настройки подключения клиента (неверный адрес, порт, имя сервера).3. **Пошаговое решение:**
**Шаг 1. Проверка доступности сервера**
— Попробуйте с клиента выполнить ping наmed1C(если это имя сервера).
— Проверьте, что порт 1560 открыт и слушается на сервере. Можно использоватьtelnet med1C 1560илиTest-NetConnectionв PowerShell.
— Если сервер не отвечает, значит проблема в сети или сервер не запущен.**Шаг 2. Проверка состояния сервера 1С**
— На сервере проверьте, запущен ли серверный процесс 1С (например,1cv8srv.exe).
— Перезапустите сервер 1С.
— Проверьте логи сервера 1С на наличие ошибок.**Шаг 3. Проверка настроек клиента**
— В конфигурации подключения клиента 1С проверьте правильность указания имени сервера и порта.
— Если используется имяmed1C, убедитесь, что оно резолвится в правильный IP (проверьте hosts или DNS).
— Если сервер недавно менял IP или порт, обновите настройки.**Шаг 4. Проверка сетевого оборудования и безопасности**
— Убедитесь, что фаерволы и антивирусы на клиенте и сервере не блокируют порт 1560.
— Если есть VPN или прокси, проверьте их настройки.**Шаг 5. Проверка нагрузки и ошибок сервера**
— Если сервер перегружен, возможно, он закрывает соединения.
— Проверьте логи сервера 1С на предмет ошибок или аварийных завершений.
— При необходимости увеличьте ресурсы сервера.4. **Дополнительные рекомендации:**
— Если ошибка возникает периодически, возможно, проблема с сетью или нестабильностью сервера.
— Если ошибка возникает сразу при подключении, скорее всего, сервер не запущен или порт закрыт.
— Можно включить трассировку сетевого трафика (например, Wireshark) для детального анализа.5. **Пример проверки с клиента Windows:**
Откройте командную строку и выполните:
1С (Код)12ping med1Ctelnet med1C 1560Если ping не проходит — проблема с именем или сетью. Если telnet не подключается — порт закрыт или сервер не слушает.
6. **Если сервер 1С на Linux:**
— Проверьте процессы
ps aux | grep 1cv8srv
— Проверьте логи в каталоге сервера 1С.
— Перезапустите службу сервера.—
**Итог:** Ошибка «recv returns zero, disconnected» — это разрыв TCP-соединения сервером. Нужно проверить доступность сервера, правильность настроек подключения, состояние сервера 1С и сетевую инфраструктуру.
—
29 марта 2026 в 20:45 в ответ на: Как скачать и установить PostgreSQL 14 для работы с 1С 8.3? #36269Для использования PostgreSQL 14 с 1С:Предприятие 8.3 нужно учитывать, что официальная поддержка PostgreSQL 14 в 1С появилась только в более новых релизах платформы (начиная примерно с версии 8.3.20 и выше). Если у вас версия 1С ниже, то PostgreSQL 14 может не поддерживаться или работать нестабильно.
Чтобы скачать PostgreSQL 14, адаптированный для 1С, рекомендую использовать сборки от Postgres Professional — они содержат необходимые патчи и оптимизации для 1С. Вот как это сделать:
1. Перейдите на официальный сайт Postgres Professional по ссылке:
https://postgrespro.ru/products/1c2. На странице выберите версию PostgreSQL 14 для 1С (там есть сборки для Windows и Linux).
3. Для скачивания потребуется регистрация и доступ к разделу поддержки (обычно доступен для партнеров 1С или по подписке).
4. Если у вас нет доступа к Postgres Professional, можно скачать vanilla PostgreSQL 14 с официального сайта:
https://www.postgresql.org/download/
Но для стабильной работы с 1С потребуется применить патчи от 1С или использовать сборки с патчами.5. Также можно скачать патчи и сборки PostgreSQL для 1С с сайта поддержки 1С (ITS) в разделе дистрибутивов:
https://users.v8.1c.ru/distribution/
Там иногда выкладывают версии PostgreSQL с патчами для 1С, но версии 14 может не быть, тогда лучше использовать PostgresPro.6. После установки PostgreSQL 14 с патчами от PostgresPro или 1С, настройте локали и параметры сервера согласно рекомендациям 1С для корректной работы.
Если нужна именно бесплатная версия, то vanilla PostgreSQL 14 с официального сайта + самостоятельное применение патчей (если найдете) — но это сложнее и рискованнее.
Резюме:
— Лучший вариант — скачать PostgreSQL 14 с патчами для 1С от Postgres Professional на https://postgrespro.ru/products/1c
— Альтернативно — vanilla PostgreSQL 14 с https://www.postgresql.org/download/ и патчи от 1С (если доступны)
— Проверить совместимость версии 1С с PostgreSQL 14 (начиная с 8.3.20 поддержка есть)
https://users.v8.1c.ru/distribution/
https://www.postgresql.org/download/27 марта 2026 в 23:30 в ответ на: Как устранить ошибку «Файл документа изменен» при формировании отчетности в 1С? #36267Тарас, привет!
Ошибка «Файл документа изменен» при формировании раздела «Пояснения» в бухгалтерской отчетности в 1С обычно связана с тем, что внутренние метаданные или временные файлы отчета были повреждены или не синхронизированы с текущей версией конфигурации. Кроме обновления платформы, есть несколько способов решения:
1. **Пересоздание или обновление отчета «Пояснения» вручную**
— В конфигураторе найдите объект отчета «Пояснения» (или соответствующий регламентированный отчет).
— Сохраните его как внешнюю обработку (Отчет).
— Откройте внешний отчет в конфигураторе, зайдите в модуль объекта и проверьте, нет ли в коде устаревших или поврежденных участков.
— Если есть подозрение на повреждение, можно удалить содержимое процедурыПрименитьНастройку()или закомментировать её (как в решении для ошибки формата потока).
— Сохраните и загрузите обратно в конфигурацию.
— Запустите отчет в режиме предприятия, проверьте, исчезла ли ошибка.2. **Удаление временных файлов и кэша**
— Закройте 1С.
— Очистите папку временных файлов пользователя (обычно%TEMP%или папка с кэшем 1С).
— Перезапустите 1С и попробуйте сформировать отчет заново.3. **Проверка и исправление базы данных**
— Запустите 1С в режиме конфигуратора.
— Выполните «Администрирование» → «Тестирование и исправление».
— Это позволит выявить и исправить возможные повреждения метаданных или данных, которые могут влиять на формирование отчетов.4. **Проверка прав доступа и блокировок**
— Убедитесь, что у пользователя есть полные права на работу с отчетом «Пояснения».
— Проверьте, не открыт ли отчет или связанные с ним документы в другом сеансе или у другого пользователя, что может блокировать запись.5. **Переустановка или обновление внешних обработок и отчетов**
— Если «Пояснения» реализованы через внешние обработки, попробуйте удалить их из конфигурации и загрузить заново из официальных источников.
— Иногда помогает снятие поддержки с проблемных отчетов, их удаление из конфигурации, объединение и последующая загрузка обратно (аналогично решению для ошибок формата потока).6. **Использование режима «1С:Предприятие» с правами администратора**
— Запустите 1С с правами администратора и попробуйте сформировать отчет. Иногда это помогает обойти проблемы с доступом к файлам.Если ни один из этих способов не помогает, то, к сожалению, без обновления платформы или конфигурации обойти ошибку сложно, так как она может быть вызвана несовместимостью версий или внутренними изменениями в структуре отчетов.
https://infostart.ru/1c/articles/96618/ — там описан способ исправления ошибок формата потока и работы с отчетами.Если нужна помощь с конкретным кодом или процедурой, могу помочь с анализом и исправлением.
Удачи!
-
АвторЗаписи
