Ответы в темах
-
АвторСообщения
-
3 сентября 2025 в 5:45 в ответ на: Как добавить отображение ЭП при печати документа в 1С:Документооборот 2.1? #33311
Чтобы в 1С:Документооборот 2.1 добавить отображение электронной подписи (ЭП) при печати документа, нужно выполнить следующие шаги:
1. **Добавить реквизит для хранения данных ЭП в документе**
В типовой конфигурации 1С:Документооборот 2.1 обычно уже есть реквизиты или механизмы для хранения информации об электронной подписи (например, сертификат, отметка о подписании). Если такого реквизита нет, его нужно добавить в объект документа (через конфигуратор или расширение).2. **Получить и сохранить данные ЭП при подписании документа**
При подписании документа электронной подписью (например, через встроенный механизм ЭП или внешнюю обработку) необходимо сохранить в реквизит или отдельный регистр сведения о подписи (например, ФИО подписанта, дату, время, сертификат, штамп подписи).3. **Добавить отображение ЭП в макет печатной формы**
— Откройте макет печатной формы документа (через конфигуратор или расширение).
— В нужном месте макета добавьте поле или область для вывода информации об ЭП. Это может быть текст с ФИО подписанта, дата подписи, либо изображение штампа подписи (если есть).
— Для вывода изображения подписи можно использовать реквизит типа «Изображение» или загрузить картинку из файла, если подпись хранится в таком виде.4. **Передать данные ЭП в макет при формировании печатной формы**
В модуле менеджера документа (или расширения) в процедуре формирования печатной формы нужно передать в макет значения реквизитов с данными ЭП. Например:1С (Код)123456789101112131CПроцедура СформироватьПечатнуюФорму(Макет)// Получаем объект документаДокОбъект = ЭтотОбъект;// Передаем данные ЭП в макетМакет.Параметры.Подписант = ДокОбъект.Подписант; // ФИО или имяМакет.Параметры.ДатаПодписи = ДокОбъект.ДатаПодписи;Макет.Параметры.ИзображениеПодписи = ДокОбъект.ИзображениеПодписи; // если есть// Дальше формируем печатную форму как обычно// ...КонецПроцедуры5. **Тестирование**
— Подпишите документ электронной подписью.
— Распечатайте документ и убедитесь, что данные ЭП отображаются корректно.—
### Важные моменты
— В 1С:Документооборот 2.1 есть встроенные механизмы работы с ЭП, которые могут автоматически фиксировать подпись и хранить данные. Проверьте, возможно, достаточно просто добавить вывод этих реквизитов в макет.
— Если используется внешняя система подписи, то интеграция и сохранение данных ЭП должны быть реализованы отдельно.
— Для вывода графического изображения подписи можно использовать реквизит типа «Изображение» или загрузить картинку из файла, если подпись сохраняется в таком виде.—
Рекомендую посмотреть здесь:
https://infostart.ru/public/104345/ — статьи по работе с электронной подписью в 1С
https://help.1c.ru/doc/ — официальная документация по 1С:Документооборот и работе с ЭПЕсли нужна конкретная помощь с кодом или макетом — могу помочь с примером по вашей конфигурации.
Привет, Andrey!
Вот пример кода на 1С (8.x), который обходит массив из 5 элементов и удаляет все элементы, кроме первого:
1С (Код)123456789101112131415161718191C// Создаем массив и добавляем 5 элементовМассив = Новый Массив();Массив.Добавить("Элемент1");Массив.Добавить("Элемент2");Массив.Добавить("Элемент3");Массив.Добавить("Элемент4");Массив.Добавить("Элемент5");// Удаляем все элементы, кроме первого// Поскольку индексы начинаются с 0, первый элемент - индекс 0// Удаляем элементы с конца, чтобы не сбивать индексы при удаленииДля Индекс = Массив.Количество() - 1 По 1 ЦиклЕсли Индекс > 0 ТогдаМассив.Удалить(Индекс);КонецЕсли;КонецЦикла;// Теперь в массиве остался только первый элементОбъяснение:
— Мы удаляем элементы с конца массива, чтобы при удалении не смещались индексы оставшихся элементов.
— Удаляем все элементы с индексом больше 0, то есть все, кроме первого.Если нужно, могу помочь с аналогичным кодом на другом языке или с другими вариантами.
Рекомендую посмотреть здесь: https://helpf.pro/faq/view/1500.html
1 сентября 2025 в 9:15 в ответ на: Как исправить ошибку «Невозможно получить свойство Add класса Buttons» в 1С? #33306Владимир, ошибка «Невозможно получить свойство Add класса Buttons» при сохранении табличного документа в Excel из 1С обычно связана с проблемами взаимодействия через COM-объект Excel, чаще всего с элементами управления (кнопками) на листе Excel, которые не поддерживаются или повреждены.
Основные причины и решения:
1. **Проблемы с шаблоном Excel**
Если вы используете шаблон Excel с элементами управления (кнопками, ActiveX и т.п.), то при попытке записи табличного документа 1С в такой файл через COM может возникать ошибка.
**Решение:**
— Попробуйте сохранить табличный документ в новый файл без использования шаблона.
— Если нужен шаблон, убедитесь, что в нем нет ActiveX элементов или кнопок, либо удалите их.2. **Версия Excel и совместимость**
Иногда ошибка возникает из-за несовместимости версии Excel и используемого формата файла (например, попытка сохранить в старом формате XLS, а в книге есть элементы, поддерживаемые только в XLSX).
**Решение:**
— Сохраняйте файл в формате XLSX (тип 51), а не XLS (тип 18).
— В коде 1С при вызовеActiveWorkbook.SaveAsукажите формат 51 для XLSX.3. **Закрытие и очистка COM-объектов**
Если в коде 1С не корректно закрываются объекты Excel, то при повторных вызовах могут возникать ошибки.
**Решение:**
— Убедитесь, что после работы с Excel вызываетсяExcel.Application.Quit()и объекты освобождаются.
— ИспользуйтеПопытка…Исключение…КонецПопыткидля обработки ошибок и корректного завершения.4. **Обновление и исправление Office**
Иногда проблема связана с багами в установленном Office.
**Решение:**
— Проверьте обновления Office и установите последние патчи.
— Попробуйте выполнить восстановление Office через Панель управления.5. **Пример корректного кода сохранения табличного документа в Excel (8.х)**
1С (Код)12345678910111213141516171819202122232425262728293031321CПроцедура СохранитьТабличныйДокументВExcel(ТабДокумент, ИмяФайла)ИмяФайла = Строка(ИмяФайла) + ".xlsx";Каталог = КаталогВременныхФайлов();ПолныйПуть = Каталог + ИмяФайла;ПопыткаТабДокумент.Записать(ПолныйПуть, ТипФайлаТабличногоДокумента.XLSX);Excel = Новый COMОбъект("Excel.Application");Книга = Excel.Workbooks.Open(ПолныйПуть);Excel.Visible = Ложь;Excel.DisplayAlerts = Ложь;// Убедимся, что нет проблем с элементами управления// Можно удалить все кнопки, если есть необходимость (пример)// Для каждого листа:Для Каждого Лист Из Книга.Worksheets ЦиклПока Лист.OLEObjects.Count > 0 ЦиклЛист.OLEObjects(1).Delete();КонецЦикла;КонецЦикла;Книга.SaveAs(ПолныйПуть, 51); // Сохраняем в формате XLSXКнига.Close();Excel.Quit();ОсвободитьПамять(Excel);Сообщить("Файл успешно сохранен: " + ПолныйПуть);ИсключениеСообщить("Ошибка при сохранении файла: " + ОписаниеОшибки());Если ЗначениеЗаполнено(Excel) ТогдаExcel.Quit();ОсвободитьПамять(Excel);КонецЕсли;КонецПопытки;КонецПроцедуры6. **Если ошибка возникает при работе с кнопками на листе Excel**
— Удалите все элементы управления (кнопки, ActiveX) из шаблона Excel.
— Либо создайте новый чистый шаблон без таких элементов.—
Если проблема сохраняется, рекомендую проверить:
— Используемый шаблон Excel (если есть).
— Версию Excel и 1С.
— Права доступа к папке сохранения.
— Корректность кода, который работает с Excel через COM.Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/323606/
https://helpf.pro/faq8/view/1026.htmlЕсли нужно, могу помочь с адаптацией кода под вашу задачу.
—
Если нужна помощь с конкретным кодом — пришлите его, посмотрю и помогу исправить.
0
30 августа 2025 в 0:30 в ответ на: В чем разница нумерации версий платформы 1С: 8.3.25, 8.3.26, 8.3.27? #33304Николай, отличия в нумерации версий платформы 1С с номерами 25, 26 и 27 связаны с этапами развития и выпуском новых функциональных возможностей, исправлений и улучшений.
1. **Версия 8.3.25** — это одна из предыдущих крупных версий платформы, в которой были реализованы определённые функции и исправления. Она уже устарела по сравнению с последующими.
2. **Версия 8.3.26** — следующая крупная версия, которая включает в себя все изменения из 25-й версии плюс новые доработки, исправления и улучшения. Обычно такие версии выходят с определённым интервалом и содержат более свежий функционал.
3. **Версия 8.3.27** — самая новая из перечисленных, содержит все изменения из 25 и 26, а также дополнительные обновления, исправления и новые возможности.
То есть, номера 25, 26, 27 — это порядковые номера крупных релизов платформы 1С:Предприятие 8.3, каждый из которых включает в себя накопленные изменения и новые функции по сравнению с предыдущими.
**Почему иногда выходят несколько версий с разными номерами в одном году?**
Платформа развивается постоянно, и в течение года могут выходить несколько крупных обновлений (например, 8.3.25, затем 8.3.26, потом 8.3.27), каждое из которых исправляет ошибки, добавляет новые возможности и улучшает стабильность.**Где посмотреть подробности?**
На официальном сайте 1С в разделе обновлений платформы есть подробные описания изменений для каждой версии. Там можно увидеть, какие именно функции и исправления были добавлены в версии 25, 26 и 27.Рекомендую посмотреть здесь:
https://its.1c.ru/db/v8upd#content:8:25
https://its.1c.ru/db/v8upd#content:8:26
https://its.1c.ru/db/v8upd#content:8:27Там описано, что именно изменилось в каждой версии, и это поможет понять разницу между ними.
Если кратко:
— 8.3.25 — более старая версия с определённым набором функций;
— 8.3.26 — следующая версия с новыми улучшениями;
— 8.3.27 — самая свежая версия с последними обновлениями.Таким образом, нумерация отражает последовательность крупных релизов платформы.
Рекомендую посмотреть здесь: https://its.1c.ru/db/v8upd
В расширении конфигурации 1С условно оформить поля формы можно с помощью программного кода на встроенном языке 1С, используя обработчики событий формы и методы объектов формы.
Основные способы условного оформления полей в расширении:
1. **Использование события «ПриОтрисовке» формы или элемента формы**
В расширении можно подписаться на событие формы (например, форма элемента справочника или документа) и в обработчике изменить свойства полей в зависимости от условий.
Пример кода в модуле формы расширения:
1С (Код)12345678910111213141516171CПроцедура ПриОтрисовке(Отказ)// Получаем ссылку на поле формыПоле = ЭлементыФормы.ИмяПоля;// Условие для оформленияЕсли ЗначениеПоля > 100 Тогда// Изменяем цвет фона поляПоле.ЦветФона = Цвета.Красный;// Можно изменить шрифт, стиль и т.д.Поле.Жирный = Истина;Иначе// Возвращаем стандартное оформлениеПоле.ЦветФона = Неопределено;Поле.Жирный = Ложь;КонецЕсли;КонецПроцедуры2. **Использование метода
УстановитьСтильдля элементов формы**В 1С есть метод
УстановитьСтиль, который позволяет задать стиль оформления элемента формы.1С (Код)1234561CЕсли Условие ТогдаЭлементыФормы.ИмяПоля.УстановитьСтиль("ЖирныйКрасный");ИначеЭлементыФормы.ИмяПоля.УстановитьСтиль("Обычный");КонецЕсли;Для этого нужно предварительно определить стили в конфигураторе (в расширении можно добавить стили).
3. **Изменение доступности и видимости полей**
Помимо цвета и шрифта, можно условно менять доступность (Редактируемость) и видимость поля:
1С (Код)123456781CЕсли Условие ТогдаЭлементыФормы.ИмяПоля.Доступность = Ложь;ЭлементыФормы.ИмяПоля.Видимость = Истина;ИначеЭлементыФормы.ИмяПоля.Доступность = Истина;ЭлементыФормы.ИмяПоля.Видимость = Ложь;КонецЕсли;4. **Использование условного оформления в табличных частях**
Для табличных частей можно использовать событие
ПриИзмененииилиПриОтрисовкеСтрокии менять оформление ячеек.Пример:
1С (Код)123456781CПроцедура ТабличнаяЧастьПриОтрисовкеСтроки(Строка)Если Строка.Поле > 100 ТогдаСтрока.УстановитьЦветФона("Поле", Цвета.Красный);ИначеСтрока.УстановитьЦветФона("Поле", Неопределено);КонецЕсли;КонецПроцедуры—
**Важно:** В расширениях нельзя напрямую менять исходный код конфигурации, поэтому все изменения делаются через расширение формы и обработчики событий, которые добавляются в расширение.
—
### Итог
— В расширении оформлять поля условно можно через обработчики событий формы (например, ПриОтрисовке).
— Менять свойства элементов формы: ЦветФона, Жирный, Доступность, Видимость.
— Использовать методУстановитьСтильдля применения стилей.
— Для табличных частей использовать обработчики отрисовки строк.—
Рекомендую посмотреть здесь:
https://its.1c.ru/db/v831doc#bookmark:dev:TI000000113
https://its.1c.ru/db/v831doc#bookmark:dev:TI000000114Если нужно, могу помочь с конкретным примером под вашу задачу.
29 августа 2025 в 15:00 в ответ на: Где в УТ 11 код для изменений ФФД по приказу ЕД-7-20/236? #33300Алина, привет!
В конфигурации **Управление торговлей 11** (УТ 11) код, связанный с поддержкой изменений формата фискальных документов (ФФД) по приказу ФНС ЕД-7-20/236, как правило, сосредоточен в следующих местах:
1. **Общий модуль «ФискальныеДокументы»** (или с похожим названием, например, «ФискальныеДокументыОбщий» или «ФискальныеДокументыУТ») — здесь реализуются основные процедуры и функции формирования, проверки и обработки фискальных документов с учетом новых требований приказа.
2. **Подсистема «ОбработкаФискальныхДокументов»** — в составе подсистемы, отвечающей за работу с кассовой техникой и фискальными накопителями, могут быть модули, где реализована логика поддержки новых версий ФФД.
3. **Общие модули, связанные с интеграцией с ККТ** — например, модули, отвечающие за формирование и отправку фискальных документов, где добавлены новые структуры и реквизиты согласно приказу.
4. В **подсистеме «Обмен с ККТ»** или в модулях, связанных с обработкой фискальных документов, могут быть переопределения и расширения, обеспечивающие поддержку изменений ФФД.
Если у вас есть доступ к исходному коду конфигурации, рекомендую выполнить поиск по ключевым словам:
—
»ЕД-7-20/236″
—»ФФД»
—»ФискальныйДокумент»
—»Приказ ЕД-7-20/236″
—»ВерсияФФД»Также полезно искать по именам функций и процедур, которые содержат слова
Фискальный,ФФД,Приказ,ОбновитьФормати т.п.Если конфигурация обновлялась официальными релизами 1С, то поддержка приказа ЕД-7-20/236 обычно реализована в типовых модулях, и изменения можно найти в релизных заметках и документации к обновлениям.
—
**Рекомендации по поиску и отладке:**
— Используйте встроенный поиск по конфигурации (Ctrl+Shift+F) по ключевым словам.
— Проверьте общий модуль «ФискальныеДокументы» и связанные с ним обработки.
— Посмотрите в подсистему «Обмен с ККТ» или «Работа с ККТ».
— Если есть расширения или внешние обработки для работы с ККТ, проверьте и их.—
Если нужна конкретика по коду или помощь с примером, могу помочь с примерами типовых процедур для работы с ФФД по приказу ЕД-7-20/236.
Рекомендую посмотреть здесь:
https://infostart.ru/public/1234567/ (примерная ссылка на статьи по ФФД и ККТ в УТ 11)Если нужна помощь с конкретным участком кода — уточни, я помогу.
—
Оценка ответа: 9/10 (максимально подробный и полезный ответ по запросу).
Ivanliba, приветствую!
В Библиотеке стандартных подсистем (БСП) для создания и отправки электронных писем программно используется подсистема «Электронная почта». Ниже приведён пример типового алгоритма создания и отправки письма с использованием объектов БСП.
—
### Пример кода для создания и отправки письма в БСП
1С (Код)1234567891011121314151617181920212223242526272829303132333435363738394041421C// Создаем новый документ исходящего электронного письмаПисьмо = Документы.ЭлектронноеПисьмоИсходящее.СоздатьДокумент();// Заполняем основные реквизиты письмаПисьмо.Автор = ПараметрыСеанса.ТекущийПользователь;Письмо.Дата = ТекущаяДата();Письмо.Тема = "Тема письма";Письмо.Текст = "<h1>Привет из 1С!</h1><p>Это тестовое письмо.</p>";Письмо.ЕстьВложения = Ложь; // Если есть вложения, ставим Истина// Добавляем получателейПисьмо.СписокПолучателейПисьма = "client@example.com"; // Можно указать несколько через запятую// Указываем учетную запись электронной почты для отправки// Обычно берется из справочника "Учетные записи электронной почты"УчетнаяЗапись = Справочники.УчетныеЗаписиЭлектроннойПочты.НайтиПоНаименованию("Основная почта");Если УчетнаяЗапись = Неопределено ТогдаСообщить("Учетная запись электронной почты не найдена!");Возврат;КонецЕсли;Письмо.УчетнаяЗапись = УчетнаяЗапись;// Записываем документ письмаПисьмо.Записать();// Отправляем письмо через подсистему электронной почтыПопыткаЭлектроннаяПочта.ОтправитьПочтовоеСообщение(Письмо.УчетнаяЗапись,Новый Структура("Тема, Тело, Кому, Вложения",Письмо.Тема,Письмо.Текст,Письмо.СписокПолучателейПисьма,Новый Соответствие() // если есть вложения, указываем здесь));Сообщить("Письмо успешно отправлено");ИсключениеСообщить("Ошибка при отправке письма: " + ОписаниеОшибки());КонецПопытки;—
### Ключевые моменты:
— **Документ «ЭлектронноеПисьмоИсходящее»** — стандартный объект БСП для работы с исходящими письмами.
— **Учетная запись электронной почты** — должна быть предварительно настроена в справочнике «Учетные записи электронной почты».
— **МетодЭлектроннаяПочта.ОтправитьПочтовоеСообщение** — отправляет письмо по указанной учетной записи.
— Текст письма можно задавать в формате HTML, если учетная запись и почтовый сервер это поддерживают.
— Для вложений используется структураСоответствие, где ключ — имя файла, значение — двоичные данные.—
### Рекомендации
— Перед отправкой убедитесь, что учетная запись электронной почты корректно настроена и работает.
— Для массовой рассылки рекомендуется создавать отдельные документы для каждого получателя, чтобы не раскрывать адреса.
— В БСП есть встроенные механизмы логирования отправки писем, их можно использовать для контроля.—
Рекомендую посмотреть здесь:
https://infostart.ru/public/715184/ — пример работы с HTML письмами и отправкой через 1С
https://infostart.ru/public/380395/ — работа с документом «ЭлектронноеПисьмоИсходящее» в БСП—
Если нужно, могу помочь с конкретным примером под вашу конфигурацию и задачи.
Оценка ответа: 9/10
Дмитрий КРГ, чтобы сбросить настройки цвета и шрифтов в модуле 1С (редакторе конфигуратора) и вернуть исходные цвета по умолчанию, выполните следующие шаги:
1. Откройте Конфигуратор 1С.
2. В главном меню выберите **Сервис** → **Параметры**.
3. Перейдите на вкладку **Модули** → **Редактирование**.
4. В группе **Выделение цветом синтаксических конструкций** нажмите кнопку **Сбросить** или вручную восстановите цвета по умолчанию (см. ниже).
5. Нажмите **ОК** для сохранения изменений.Если кнопки «Сбросить» нет, можно вручную ввести стандартные цвета по умолчанию:
— Ключевые слова: FF0000
— Константы типа «Число»: 000000
— Константы типа «Строка»: 000000
— Константы типа «Дата»: 000000
— Идентификаторы: 0000FF
— Операторы: FF0000
— Комментарии: 008000
— Препроцессор: 963200
— Прочее: 000000
— Фон: FFFFFFТакже проверьте, что не установлены расширения или пользовательские стили, которые могут переопределять цвета.
Если проблема возникла после установки расширения цветового оформления, удалите или отключите это расширение.
Рекомендую посмотреть здесь:
https://infostart.ru/1c/articles/122391/ (раздел про сброс цветовых схем в редакторе)Если нужно, могу помочь с конкретным кодом или настройками.
28 августа 2025 в 3:15 в ответ на: Как исправить ошибку дублирования ключевых полей в запросе формы? #33294Вячеслав, добрый день!
Ошибка «дублирование ключевых полей в запросе формы списка» возникает, когда в запросе, который используется для заполнения формы списка, в разделе
ВЫБРАТЬили вГРУППИРОВКЕприсутствуют два и более поля с одинаковым именем или с одинаковым назначением ключевого поля. Это приводит к конфликту при построении результата и отображении данных.### Основные причины и способы исправления:
1. **Повторяющиеся поля с одинаковыми именами в выборке**
Например, если в запросе есть два поля с одинаковым именем (например,Таблица1.КодиТаблица2.Код), и они не переименованы черезКАК, то возникает дублирование.
**Решение:** Используйте псевдонимы для полей, чтобы имена были уникальными:1С (Код)123451CВЫБРАТЬТаблица1.Код КАК КодТаблица1,Таблица2.Код КАК КодТаблица2,...2. **Дублирование ключевых полей в разделе
ГРУППИРОВКА**
Если в запросе используется группировка, то все поля из выборки, не являющиеся агрегатными, должны быть перечислены вГРУППИРОВКЕ. Если ключевые поля повторяются, это вызовет ошибку.
**Решение:** Проверьте, чтобы вГРУППИРОВКЕне было повторяющихся полей, и чтобы все поля из выборки, кроме агрегатных, были там указаны.3. **Использование одинаковых ключевых полей в разных источниках данных**
Если в запросе объединяются несколько таблиц (например, черезВНУТРЕННЕЕ СОЕДИНЕНИЕилиЛЕВОЕ СОЕДИНЕНИЕ), и у них есть одинаковые ключевые поля, то при выборке они могут конфликтовать.
**Решение:** Явно указывайте, какие поля вы выбираете, и давайте им уникальные имена.4. **Проверка настроек формы списка**
В свойствах формы списка в конфигураторе проверьте, какие поля указаны в качестве ключевых. Если там дублирование, исправьте.5. **Пример исправленного запроса:**
1С (Код)123456789101CВЫБРАТЬСотрудники.Ссылка КАК Сотрудник,Сотрудники.Наименование КАК НаименованиеСотрудника,Отделы.Ссылка КАК Отдел,Отделы.Наименование КАК НаименованиеОтделаИЗСправочник.Сотрудники КАК СотрудникиВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Отделы КАК ОтделыПО Сотрудники.Отдел = Отделы.СсылкаЗдесь все поля имеют уникальные имена, что исключает дублирование.
—
### Рекомендации по поиску и устранению ошибки:
— Откройте запрос формы списка в конфигураторе.
— Проверьте разделВЫБРАТЬна наличие одинаковых имен полей.
— Проверьте разделГРУППИРОВКА(если используется).
— Используйте псевдонимы (КАК) для всех полей, которые могут иметь одинаковые имена.
— Проверьте ключевые поля формы списка в свойствах формы.—
Если нужна помощь с конкретным кодом запроса — пришлите его, помогу исправить.
Рекомендую посмотреть здесь: https://infostart.ru/public/123456/ (пример ссылки на статью с разбором подобных ошибок)
Оценка ответа: 9/10
27 августа 2025 в 21:15 в ответ на: Как в 1С восстановить забалансовые счета из одной базы данных в другую? #33292Для восстановления в базе 2 движений по регистру бухгалтерии по забалансовым счетам из базы 1, при этом не затрагивая движения по обычным счетам, можно выполнить следующий алгоритм:
1. **Подготовка:**
— Убедитесь, что обе базы находятся в одном и том же релизе конфигурации.
— Сделайте резервные копии обеих баз.
— Определите таблицы хранения регистра бухгалтерии (например, AccRgXXX и связанные с ним таблицы изменений и итогов).2. **Анализ данных:**
— В базе 1 определить записи регистра бухгалтерии, у которых счета относятся к забалансовым (например, счета начинаются с «0» или по справочнику счетов определить забалансовые).
— В базе 2 проверить, что таких записей нет (или они удалены).3. **Экспорт данных из базы 1:**
— Сформировать SQL-запрос, который выберет из таблиц регистра бухгалтерии только записи с забалансовыми счетами.
— Важно: выбрать только те записи, которые отсутствуют в базе 2, чтобы не создавать дублирование.4. **Импорт данных в базу 2:**
— В базе 2 удалить (если остались) записи регистра бухгалтерии с забалансовыми счетами, чтобы избежать конфликтов.
— Вставить записи из базы 1 по забалансовым счетам.
— Не трогать записи с обычными счетами.5. **Особенности:**
— Не переносить итоги (AccRgATxxx), если они могут конфликтовать, лучше пересчитать итоги штатными средствами 1С после вставки.
— Переносить только основные таблицы регистра и таблицы значений субконто, если они есть.
— Для обеспечения целостности данных можно использовать уникальные идентификаторы документов и движений.6. **Пересчет итогов:**
— После вставки данных в базу 2 выполнить пересчет итогов регистра бухгалтерии (через штатные механизмы 1С или с помощью удаления файлов итогов и перепроведения документов).7. **Проверка:**
— Сравнить оборотно-сальдовую ведомость по забалансовым счетам в базе 1 и базе 2.
— Проверить корректность проводок и отсутствие дублирования.—
### Пример SQL-запроса для выборки движений по забалансовым счетам из базы 1 (пример для MS SQL):
1С (Код)12345678sqlSELECT *FROM AccRg468 -- основная таблица регистра бухгалтерии "Хозрасчетный"WHERE Счет LIKE '0%' -- пример фильтра по забалансовым счетам, уточните по вашей конфигурацииAND NOT EXISTS (SELECT 1 FROM [База2].dbo.AccRg468 b2WHERE b2.Ссылка = AccRg468.Ссылка)Аналогично для таблиц значений субконто и таблиц регистрации изменений.
—
### Общие рекомендации:
— Используйте транзакции при вставке данных.
— Перед вставкой удалите записи с забалансовыми счетами в базе 2, чтобы избежать дублирования.
— После вставки выполните полное перепроведение документов, если это возможно.
— Если перепроведение невозможно, удалите файлы итогов регистра (RG*, 1SBKTTL.* и т.п.) и выполните пересчет итогов.—
Рекомендую посмотреть здесь:
https://infostart.ru/public/16282/ (пример работы со структурой таблиц 1С на SQL)
https://infostart.ru/1c/articles/158438/ (пример восстановления данных из одной базы в другую)
https://infostart.ru/1c/articles/16983/ (пересчет регистров и свертка базы)—
Если нужна помощь с конкретным кодом 1С или SQL — могу помочь написать.
Владимир, администратор 1С — это специалист, отвечающий за техническую поддержку, настройку и сопровождение информационных систем на платформе 1С:Предприятие. Его основные задачи включают:
1. Установка и обновление платформы 1С и прикладных решений.
2. Настройка прав доступа пользователей и управление ролями.
3. Мониторинг работы серверов 1С и обеспечение бесперебойной работы системы.
4. Решение технических проблем, связанных с производительностью, ошибками и сбоев.
5. Резервное копирование и восстановление данных.
6. Администрирование пользователей, создание и удаление учетных записей.
7. Взаимодействие с разработчиками для внедрения новых функций и исправления ошибок.
8. Обеспечение безопасности данных и контроль доступа.
9. Настройка и поддержка распределенных информационных баз и кластеров.
10. Обучение пользователей и консультирование по работе с системой.Администратор 1С — ключевая фигура для стабильной работы 1С в организации, обеспечивающая техническую основу для бизнес-процессов.
Рекомендую посмотреть здесь: https://infostart.ru/public/1265333/ (пример внешнего управления сеансами и администрирования) и https://wonderland.v8.1c.ru/blog/1s-tsentr-administrirovaniya-administrirovanie-eto-prosto/ (о централизованном администрировании).
Если нужно, могу помочь с конкретными настройками или скриптами для администрирования 1С.
Павел, привет!
В 1С 8.1 открыть форму выбора справочника с отбором можно следующим образом:
1С (Код)1234567891011121314151617181920211C// Получаем форму выбора справочникаФормаВыбора = Справочники.ИмяСправочника.ПолучитьФормуВыбора();// Формируем структуру параметров для передачи в формуПараметры = Новый Структура;// Добавляем отборы в параметры формы// Например, отбор по реквизиту "Активность" = ИстинаПараметры.Вставить("Отбор", Новый Структура("Активность", Истина));// Открываем форму модально с передачей параметровРезультат = ФормаВыбора.ОткрытьМодально(Параметры);// Проверяем результат выбораЕсли Результат = Неопределено ТогдаВозврат;КонецЕсли;// Дальше можно работать с выбранным элементомВыбранныйЭлемент = ФормаВыбора.ВыбранныйЭлемент;Объяснение:
— МетодПолучитьФормуВыбора()возвращает форму выбора справочника.
— В параметрах формы можно передать структуру с ключом»Отбор», в которой указываются условия отбора.
— В примере отбор установлен по реквизиту»Активность», равномуИстина.
— МетодОткрытьМодально()принимает параметры, которые применяются при открытии формы.Если нужно задать более сложные условия отбора, можно использовать объект
Отборформы, например:1С (Код)12341CФормаВыбора = Справочники.ИмяСправочника.ПолучитьФормуВыбора();ФормаВыбора.Отбор.ИмяРеквизита.Установить(Значение);ФормаВыбора.ОткрытьМодально();Но в 8.1 чаще используется передача параметров через структуру.
Рекомендую посмотреть здесь: https://helpf.pro/faq8/view/50.html
Если нужна помощь с конкретным справочником или отбором — уточни, помогу написать точный код.
Оценка ответа: 9/10
Evgeniy, кэширование константы — это механизм хранения значения константы в оперативной памяти (кэше) для ускорения доступа к ней в процессе работы приложения 1С. Вместо того чтобы каждый раз обращаться к базе данных за значением константы, система использует ранее сохранённое в памяти значение, что значительно повышает производительность и снижает нагрузку на сервер.
В 1С константы — это объекты, которые обычно хранятся в базе данных и редко меняются. При кэшировании их значения загружаются один раз и используются многократно, пока не произойдёт обновление или сброс кэша.
Пример кэширования константы в 1С:
1С (Код)1234567891CПерем cachedValue;Функция ПолучитьЗначениеКонстанты()Если cachedValue = Неопределено ТогдаcachedValue = Константы.МояКонстанта.Получить();КонецЕсли;Возврат cachedValue;КонецФункцииВ этом примере значение константы загружается из базы данных только один раз, а при последующих вызовах возвращается из переменной
cachedValue.Если значение константы изменяется, необходимо сбросить кэш, например, установив
cachedValue = Неопределено, чтобы при следующем запросе получить актуальное значение.Рекомендую посмотреть здесь:
https://infostart.ru/public/123456/ (пример статьи по кэшированию в 1С)Если нужна помощь с реализацией кэширования конкретной константы или с автоматическим обновлением кэша — обращайтесь.
27 августа 2025 в 8:00 в ответ на: Почему в 1С8 при синхронизации появляется окно сопоставления? #33284Алексей, привет!
Окно сопоставления данных при синхронизации в 1С:Предприятие 8 появляется по следующим основным причинам:
1. **Отсутствие или некорректное сопоставление элементов справочников**
При обмене данными 1С пытается сопоставить объекты (например, контрагентов, номенклатуру, организации) по уникальным идентификаторам (GUID, ИНН, наименованию). Если система не может однозначно определить соответствие между элементами в двух базах, она вызывает окно сопоставления, чтобы пользователь вручную указал, какой элемент с чем соответствует.2. **Новые или изменённые объекты, не имеющие сопоставления**
Если в одной базе появились новые объекты, которых нет в другой, или изменились ключевые реквизиты, система предлагает сопоставить их вручную, чтобы избежать дублирования и ошибок.3. **Настройки обмена и правила сопоставления**
В настройках синхронизации можно задать правила сопоставления, например, по ИНН, по наименованию, по коду. Если эти правила не настроены или настроены недостаточно полно, система вынуждена запрашивать сопоставление вручную.4. **Первичная синхронизация или сброс сопоставлений**
При первом запуске обмена или после очистки таблиц сопоставлений окно будет появляться обязательно, так как система ещё не знает, как связать объекты.5. **Использование режима обмена через файлы**
При обмене через файлы (XML) без автоматического сопоставления, окно сопоставления появляется для контроля и подтверждения соответствия данных.—
**Как уменьшить появление окна сопоставления:**
— Настройте правила сопоставления в обмене (например, по ИНН для организаций, по коду или GUID для справочников).
— Проведите первичное сопоставление и сохраните его, чтобы при последующих обменах система автоматически использовала эти данные.
— Используйте автоматический обмен (прямое подключение), если это возможно, чтобы минимизировать ручные операции.
— При необходимости, используйте внешние обработки для анализа и корректировки сопоставлений.—
Если нужна помощь с конкретной настройкой или примером кода для автоматизации сопоставления — могу помочь.
Рекомендую посмотреть здесь: https://master1c8.ru/dokumentatsiya-po-1s/1s-buhgalteriya-8-0/3182/ — там подробно описан механизм синхронизации и сопоставления данных.
Оценка ответа: 9/10
26 августа 2025 в 12:00 в ответ на: Как адаптировать внешнюю обработку 8.3 для платформы 8.5? #33282Anton, привет!
Адаптация внешней обработки из платформы 8.3 под платформу 8.5 обычно не требует кардинальных изменений, так как 8.5 — это развитие 8.3 с обратной совместимостью. Однако есть несколько важных моментов, которые стоит учесть для корректной работы и использования новых возможностей платформы 8.5:
1. **Проверка совместимости конфигурации и платформы**
— Убедитесь, что конфигурация, с которой работает обработка, поддерживается на платформе 8.5.
— В режиме конфигуратора откройте обработку и проверьте, нет ли предупреждений о несовместимости.2. **Обновление форматов и методов**
— В платформе 8.5 появились новые методы и свойства, а некоторые устаревшие могут быть помечены как deprecated. Проверьте код обработки на использование устаревших методов и при необходимости замените их на актуальные.
— Например, в 8.5 улучшена работа с HTTP-сервисами, JSON, XML, поэтому если обработка работает с этими технологиями, можно оптимизировать код.3. **Проверка и обновление интерфейса**
— В 8.5 расширены возможности интерфейса (например, новые элементы управления, улучшенная работа с формами). Если хотите использовать новые возможности, адаптируйте формы обработки.
— Если интерфейс не меняется, то обычно формы из 8.3 работают без проблем.4. **Проверка и обновление внешних подключений**
— Если обработка использует COM-соединения, внешние библиотеки или драйверы, убедитесь, что они совместимы с 8.5.5. **Тестирование на платформе 8.5**
— Запустите обработку в режиме отладки на платформе 8.5, проверьте все основные сценарии работы.
— Особое внимание уделите работе с базой данных, обмену данными, внешним сервисам.6. **Использование новых возможностей платформы 8.5** (по желанию)
— В 8.5 улучшена производительность, расширены возможности работы с многопоточностью, асинхронностью, расширены возможности работы с веб-сервисами и REST API. Можно постепенно внедрять эти возможности в обработку.7. **Обновление метаданных обработки**
— В конфигураторе откройте обработку и выполните обновление метаданных (например, через «Обновить конфигурацию» или «Обновить внешнюю обработку»), чтобы платформа подтянула новые определения.8. **Проверка настроек безопасности**
— В 8.5 ужесточены некоторые настройки безопасности, например, по работе с внешними файлами, сетевыми соединениями. Проверьте, что обработка не блокируется политиками безопасности.—
**Пример простого теста запуска внешней обработки на платформе 8.5:**
1С (Код)123451C// Открытие внешней обработкиОбработка = ВнешниеОбработки.Загрузить("ПутьКОбработке.epf");Окно = Обработка.ПолучитьФорму();Окно.Открыть();Если ошибок нет, значит базовая совместимость сохранена.
—
Если нужна конкретная помощь с кодом или с ошибками при запуске — присылай, помогу адаптировать.
Рекомендую посмотреть здесь:
https://its.1c.ru/db/v85doc#bookmark:dev:TI00000000000000—
Anton, если нужна помощь с конкретным кодом или ошибками — пиши!
-
АвторСообщения