Защита объектов от изменения обменом

Публикация № 1577858 05.01.22

Интеграция и обмен данными - Файловый обмен (TXT, XML, DBF), FTP

запрет редактирования обмен данными загрузка XML защита блокировка

Расширение позволяет пользователю заблокировать объект 1С (документ, справочник) от изменения последующими загрузками данных или обменами.

Во многих базах 1С работают обмены данными и загрузки из различных источников в Базу-приемник. И было бы неплохо в такой ситуации дать возможность пользователю защитить объект (документ, справочник) в Базе-приемнике от повторного затирания следующими итерациями обменов. Это необходимо, например, когда объекты в Базу-приемник приходят частично или не совсем корректно заполненными и ответственные пользователи вручную проверяют пришедший объект и дозаполняют его до нужного состояния. Но не могут зафиксировать свою работу предотвратив случайное затирание при следующей загрузке.

Примечание: Стандартная дата запрета не защищает объекты 1С от изменения загрузками данных, т.к. не контролирует внесение изменений объекта в режиме ЭтотОбъект.ОбменДанными.Загрузка = Истина, в котором работают загрузки и обмены, поэтому требуется доработка контроля. Я, например, использовал это расширение при загрузках универсальным обменом данными из УПП в ЕРП в период перехода с одной базы на другую, вообще можно использовать при любых обменах между базами (см. ниже блок Проверка работоспособности в конфигурациях).

Немного о расширении:

  • Кнопка установки защиты на объект выводится динамически в верхнюю панель формы справочников, документов, планов видов характеристик через перехват методов общих модулей: ВерсионированиеОбъектов и УправлениеСвойствами. Действие нажатия кнопки обрабатывается через перехват методов общего модуля ПодключаемыеКомандыКлиент;
  • В режиме обмена/загрузки в подписках на событие перед записью проверяется запрет на изменение объектов и запрещается менять защищенный пользователем объект . ПримечаниеПри этом менять сам объект в базе пользователю можно, запрет действует только на изменение объекта обменом или загрузкой;
  • Поддерживается два статуса объекта:  - обмен объекта разрешен,  - перезапись объекта обменом запрещена;
  • Сами ссылки на защищенные объекты хранятся в расширении регистре сведений "ЗИО: Закрытые от изменения объекты" (навигационная ссылка) e1cib/list/РегистрСведений.зио_ЗакрытыеОтИзмененияОбъекты, в нем можно перейти к объекту и отредактировать состояние вручную.

Ниже пара простых примеров установки блокировки:

 
  Пример 1: Защита приема на работу и сотрудника от затирания в 1С:Зарплата и управление персоналом
 
  Пример 2: Защита заявки и контрагента от затирания в 1С:ERP
 
 Пример 3: Защита платежа от затирания в 1С:Бухгалтерия предприятия

 

Проверка работоспособности в конфигурациях:

Работа расширения успешно проверено на платформе 1С:Предприятие 8.3 (8.3.18.1520) в конфигурациях:

  • 1С:ERP Управление предприятием 2 (2.4.11.91, 2.5.7.201)
  • 1С:Комплексная автоматизация 2 (2.4.9.98)
  • 1С:Управление торговлей, редакция 11 (11.4.8.84)
  • 1С:Зарплата и управление персоналом, редакция 3.1 (3.1.18.337, 3.1.20.97) 
  • 1С:Бухгалтерия предприятия, редакция 3.0 (3.0.106.60) 

Т.к. в расширении подписки на события используются, то Режим совместимости конфигурации нужен от Версия 8.3.16 (либо удаляйте подписки из расширения и делайте перехват процедур от подписок перед записью из конфигурации)

Расширение использует универсальные механизмы, общие для многих продуктов 1С, поэтому может быть подключено к разным продуктам 1С либо доработано с минимальными затратами. Конфигурация продукта 1С должна быть построена на базе БСП (Библиотеки стандартных подсистем, входит в типовые конфигурации 8.3)

ВЕРСИИ ДЛЯ СКАЧИВАНИЯ: 

  • Расширение: Защита объектов от изменения обменом (версия 04.01.2022 с отказом) - При загрузка выполняется отказ от записи защищенного объекта, нужно сочетать с признаком продолжения загрузки при возникновении ошибки, либо анализировать и убирать из регистрации в источнике запрещенный объект. Обратите внимание, что 

    ЭтотОбъект.ОбменДанными.Загрузка=Истина может вызываться, например, в обработке редакторе объекта
    и других местах, поэтому можно в код добавить проверку пользователя или специальной роли. Так на автообмены для фонового обычно выделяют определенного пользователя и можно добавить проверку на его имя. Вообщем, код открыт, используйте расширение как шаблон, дополняя по своей специфике. Вместо подписок на событие в Правилах обмена можно обращаться к регистру, хранящему защищенные объекты и выполнять отказ от записи объекта (зависит от контекста задачи).

  • Расширение: Защита объектов от изменения обменом (версия 04.01.2022 без отказа с восстановлением от Malfarion) - При загрузке отказ не выполняется, а выполняется восстановление объекта ЗаполнитьЗначенияСвойств(ЭтотОбъект,Ссылка) , восстанавливая объект. Кому-то потребуется чуть посложнее обвязку сделать, дело в том что у ЗаполнитьЗначениеСвойств() есть проблема с реквизитами "Владелец" и "Родитель". Например если справочник не подчиненный он на этой конструкции выкинет ошибку на то что пытается записать "владельца", а этот реквизит недоступен для записи. Это скорее проблема у ЗаполнитьЗначениеСвойств, но в текущих платформах надо самому это определять и ставить в список исключающих свойств. По табличным частям также сами сделайте восстановление выгрузкой из ссылки и загрузкой в объект (если необходимо)

 
 Как подключить расширение к базе 1С?
 
 Другие публикации автора
Ссылка на компетенции по 1С:ERP - команда со знаниями, умениями и успешными проектами

Скачать файлы

Наименование Файл Версия Размер
Расширение: Защита объектов от изменения обменом (версия 04.01.2022 с отказом):

.cfe 21,81Kb
24
.cfe 21,81Kb 24 Скачать
Расширение: Защита объектов от изменения обменом (версия 04.01.2022 без отказа с восстановлением от Malfarion):

.cfe 21,92Kb
28
.cfe 21,92Kb 28 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. alexey_kurdyukov 122 05.01.22 10:53 Сейчас в теме
Кажется, больше нужен запрет обмена на стороне УПП
2. sapervodichka 6190 05.01.22 11:13 Сейчас в теме
(1) ну в данном случае с УПП переходили на ЕРП. УПП был источником данных, с которого переносили в ЕРП данные каждый день в течение 3-х месяцев, поэтому запрет для объектов требовался именно в ЕРП для пользователей выверяющих и дозаполняющих там данные. В УПП использовали просто стандартные даты запрета изменения данных закрывающие период от редактирования.
3. infosoft-v 715 05.01.22 11:28 Сейчас в теме
Частично эту задачу решает настройка Дата запрета загрузки
Прикрепленные файлы:
e.kogan; sbcode; sapervodichka; +3 Ответить
4. sapervodichka 6190 05.01.22 11:39 Сейчас в теме
(3) Да, есть такая штука, она такая более общая, там мин граница до раздела, до ссылки не спуститься. Тоже нужно о ней знать при синхронизациях. Спасибо за коммент.
6. fatman78 8 05.01.22 13:28 Сейчас в теме
(3)Недавно напоролся на "дыру" во встроенном механизме безопасности типового обменов - Стояло 3 даты запрета: дата запрета редактирования в базе приемнике, дата "запрета загрузки" в приемнике, дата начала выгрузки документов в базе источнике, формат ED 1.8

В источнике при обмене вместе с объектом "Расходной накладной" выгружается его таблица "зачета" оплат, в которой находились ссылки на зачтенные предоплаты - банковские документы на "авансы", которые были за пределами начала обмена (были по сути пустыми помеченными на удаление документами заглушками для начальной задолженности контрагентов на дату начала ведения учета в базе источнике), однако это не помешало в приемнике модулю обмена найти их "аналоги" в закрытом периоде с двумя датами запрета (запрет изменения и запрет загрузки) пометить на удаление эти документы (содержимое документов не очистилось). При включенном версионировании никаких записей об изменении обмен не сделал. Виновника вычислил случайно, анализируя Журнал регистрации (в одной фоновом задании были изменены эти связанные документы).
Пока полечил включением в настройках синхронизации источника галочки "Автоматически зачитывать авансы", тем самым таблица ссылок на зачтенные документы авансов не передается. Но это ведь неправильно.

P.S. Источник УНФ, приемник БУХ. ED 1.8
5. dhurricane 05.01.22 13:02 Сейчас в теме
В ERP есть механизм проверки документов, похожий на представленный в этой статье. Он действительно учитывает признак загрузки, но эту проверку можно было бы отключить расширением вместо изобретения собственного механизма защиты. Вы с заделом на будущее разрабатывали? Или из спортивного интереса?
10. sapervodichka 6190 05.01.22 16:34 Сейчас в теме
(5) проверка документа и защита от обмена, это механизмы с разной задачей. При защите от обмена исходили из универсальности подхода и цели защитить от изменения обменами и загрузками, при этом оставив пользователям возможность работы с объектами в том числе изменения. Основные цели были 1) Блокировать не только документы но и справочники и ПВХ; 2) Быстро подключать к любому объекту; - ну и еще раз напишу, что Проверка документов немного другой смысл несет, она не дает после установки людям работать с документом, а задача защитить от перезаписи обменом и загрузками, не запрещая работать с объектом в базе.
7. fatman78 8 05.01.22 13:45 Сейчас в теме
(4) Вы в какой-то одной общей процедуре обмена "перед записью" перехватываете управление, когда уже известно найден объект в приемнике или нет и можно проверить на признак установки блокировки, или для каждого вида надо отдельно в нескольких процедурах отлавливать событие?

Хочу сделать что-то похожее, но только еще с обратной связью через регистр сведений в источнике, чтобы в него передавать информацию об установленном на объект запрете изменений для обмена в приемнике, и выдавать предупреждение пользователю при интерактивной записи задним числом документа в источнике - о том что эти изменения уже не отразятся в приемнике.
8. 31337 38 05.01.22 15:17 Сейчас в теме
хорошая доработка, спасибо. С обменами сколько ньюансов, что уже и не знаешь зачастую как там разрулить всё)))
9. Malfarion 241 05.01.22 16:33 Сейчас в теме
Приходилось не так давно решать похожу задачу. Интересно как вы организовали сам запрет на изменение объекта?
Мне например пришлось ПередЗаписью восстанавливать реквизиты объекта из "ссылки"
ЗаполнитьЗначенияСвойств(ЭтотОбъект,Ссылка);

Установка "Отказ" в истина вызывало исключение в нижестоящем коде. У вас какой-то другой подход?
11. sapervodichka 6190 05.01.22 16:36 Сейчас в теме
(9) подход = в подписке запрещать события записи в режиме ЭтотОбъект.ОбменДанными.Загрузка = Истина для выбранных объектов + в загрузках есть признаки продолжать загрузку в случае возникновения ошибки.
12. Malfarion 241 05.01.22 16:37 Сейчас в теме
(11) Запрещать как, через Отказ = Истина ?
13. sapervodichka 6190 05.01.22 16:39 Сейчас в теме
(12) да Отказ = Истина + Признак продолжать загрузку в случае возникновения ошибки (в некоторых случаях убирали объект из регистрации в источнике и анализировалили изменения, чтобы в дальнейшем согласовать регламент изменения и убрать такие ситуации)
14. Malfarion 241 05.01.22 16:43 Сейчас в теме
(13)
Отказ = Истина

Как совет для развития расширения, такой подход будет работать не всегда.
Отказ = Истина вызовет исключение в вызывающем запись коде, что не везде будет корректно обработано.
Мне приходилось решать аналогичную задачу не для типового обмена а для обмена с сайтом, и вызывающий код не умел корректно обрабатывать исключение отказа.
Я использовал подход ЗаполнитьЗначенияСвойств(ЭтотОбъект,Ссылка) , "Восстанавливая объект" перед записью, и разрешал запись, запись фактически была, но данные не менялись.
maksa2005; klaus38; ardn; sapervodichka; +4 Ответить
15. sapervodichka 6190 05.01.22 16:47 Сейчас в теме
(14) Спасибо, пометил как лучший комментарий, там люди которым будет интересна тема в код записи сами добавят ЗаполнитьЗначенияСвойств(ЭтотОбъект, Ссылка) в подписках расширения, если все таки нужно будет перезаписывать объект.
16. sapervodichka 6190 05.01.22 17:02 Сейчас в теме
(15) Добавил вариант расширения в твоем исполнении!
36. e.kogan 1869 17.01.22 14:46 Сейчас в теме
(15) С табчастями корректно разве отработает? Помню, налетала так
37. sapervodichka 6190 17.01.22 15:37 Сейчас в теме
(36) верно, таб части Выгрузить/Загрузить надо добавлять самостоятельно, там в публикации указано у этой версии
52. RocKeR_13 1190 10.10.22 16:35 Сейчас в теме
(15) Случайно наткнулся на эту тему. Есть же более лаконичное решение: вместо ЗаполнитьЗначенияСвойств можно же просто вызвать метод Прочитать(), чтобы 1С перечитала в записываемый объект данные из БД.
17. fatman78 8 05.01.22 21:01 Сейчас в теме
(14)
ЗаполнитьЗначенияСвойств

А это не будет садить производительность? Там ведь кроме ЗаполнитьЗначенияСвойств(ЭтотОбъект,Ссылка) еще надо по всем табличным частям объекта пробежаться и загрузить их из базы данных. Да и сам метод ЗаполнитьЗначенияСвойств не особо производительный https://its.1c.ru/db/metod8dev/content/2322/hdoc
e.kogan; hdkw; +2 Ответить
18. fatman78 8 05.01.22 22:10 Сейчас в теме
(11) А нельзя реализовать этот функционал через перехватит процедуры ОбменДаннымиXDTOСервер.ПередЗаписьюПолученныхДанных? , В этот момент объект штатными средствами уже найден "ДанныеИБ". Ведь если вместо вызова вложенных обработчиков "ПередЗаписьюПолученныхДанных" через
попытка МенеджерОбмена.ВыполнитьПроцедуруМодуляМенеджера(ИмяОбработчика, СтруктураПараметров);
обнулить переменную "ПолученныеДанные" то запись изменений в базу не производится. Бонусом останется возможность программно использовать конструкцию "ОбменДанными.Загрузка = Истина" для решения других задач.
e.kogan; sapervodichka; +2 Ответить
20. sapervodichka 6190 06.01.22 15:38 Сейчас в теме
(18) да, по сути можно в любом месте перехватить и вставить вызов функции проверки закрытия объекта зио_Сервер.ОбъектЗакрытОтОбмена(СсылкаНаОбъект). Код в расширении открыт и как шаблон можно использовать функционал вывода кнопок, хранения ссылок закрытых, ну а проверку вставлять в любое место.
22. fatman78 8 07.01.22 14:00 Сейчас в теме
(20) Подскажите пож-та, какой тип для измерения "объект" регистра сведений используется? Или как обошли запрет на использование в расширении заимствованных определяемых типов или ЛюбаяСсылка (я про ошибку Использование наборов типов и определяемых типов в расширении недопустимо) Или "объект" это просто отрисовка на форме по связке "Тип объекта" и UID (либо просто навигационная ссылка). Ссылочная целостность поддерживается?
23. sapervodichka 6190 07.01.22 15:02 Сейчас в теме
(22)
"Тип объекта" и UID
- да вот это
fatman78; +1 Ответить
19. Leon75 05.01.22 22:21 Сейчас в теме
Источник.ОбменДанными.Загрузка=Истина может вызываться в обработке редакторе объекта
и много где еще.
Я думаю нужно еще проверять пользователя или его роль или доп.настройку, так как на автообмены для фонового обычно выделяют определенный аккаунт.
sapervodichka; +1 Ответить
21. sapervodichka 6190 06.01.22 15:56 Сейчас в теме
(19) да, можно добавить проверку на роль или имя пользователя, код открыт, расширение как шаблон.
24. winapi 43 10.01.22 09:22 Сейчас в теме
Очень странное описание проблемы, решение похоже на костыль. Вы устраняете не причину, а следствие. А что происходит с объектом в базе источника? Он удаляется из плана обмена? Если удаляется, а в этой базе остается другая версия, то значит будет расхождение в данных. Очень похоже на какой-то кривой бизнес-процесс... Вы написали про дату запрета редактирования, которая не влияет на обмен, так это всё правильно - её нужно устанавливать в базе источнике, тогда и приходить ничего не будет. Также проблему можно решать, закрывая изменение самих объектов в базе источнике (по конечному статусу, по правам и т.п.). В вашем случае чем дальше, тем больше будут расходиться данные и что либо сверить будет проблематично.
25. sapervodichka 6190 10.01.22 10:51 Сейчас в теме
(24) как-то много вопросов, подумаю сделать митап на эту тему ))) вот здесь можно ознакомиться с ситуацией частичной загрузки объектов в период перехода с УПП на ERP
https://infostart.ru/1c/articles/1540097/
26. sapervodichka 6190 10.01.22 12:16 Сейчас в теме
(24)
Вы написали про дату запрета редактирования, которая не влияет на обмен, так это всё правильно - её нужно устанавливать в базе источнике, тогда и приходить ничего не будет
- Объект будет отправляться из Источника и приходить в Приемник ))) если объект по ссылке тянется или зарегистрирован к обмену, независимо от того, чтобы там в источнике датами и правами не закрывалось.
(24)
В вашем случае чем дальше, тем больше будут расходиться данные и что либо сверить будет проблематично.
- в моем случае все будет нормально, т.к. по условию задачи объекты приходят частично заполненными, далее выверяются и дозаполняются пользователями, а вот в вашем случае в случае регулярных обменов, где пользователям не нужно править объекты - эту обработку использовать не нужно, она НЕ подходит под условия вашей задачи обмена.
27. SanchoD 248 11.01.22 09:39 Сейчас в теме
Дмитрий, приветствую!

Установил расширение на БП 3.0 (3.0.105.45) - полет нормальный.
На Управление аптечной сетью, редакция 11.4/1.4 (11.4.13.282/1.4.13.185) - проблема с отражением в форме статуса запрета.
Т.е. записи в регистре появляются, признак "Закрыт" меняется, но по пиктограмме не понятно.
Прикрепленные файлы:
28. SanchoD 248 11.01.22 09:55 Сейчас в теме
(27) Даже не так. При повторном открытии документа вообще нет пиктограммы:
Прикрепленные файлы:
29. sapervodichka 6190 11.01.22 11:01 Сейчас в теме
(28) пришлите в текстовом файле код модуля формы документа посмотреть
31. sapervodichka 6190 11.01.22 12:17 Сейчас в теме
(30) хм, странно, и ВерсионированиеОбъектов.ПриСозданииНаСервере и УправлениеСвойствами.ПриСозданииНаСервере вызываются без ограничений. Тогда нужна база "Аптеки", по коду не понятно.
32. sapervodichka 6190 11.01.22 12:42 Сейчас в теме
(31) думаю можно просто конфигурацию или демку Управления аптечной сетью (прислать ссылку на скачивание мне в личку)
33. SanchoD 248 11.01.22 14:22 Сейчас в теме
(31) Базу вряд ли клиент разрешит передать. Если только конфигу.
34. SanchoD 248 12.01.22 17:25 Сейчас в теме
Проблему нашел и исправил.
Вот в этом все дело:
Прикрепленные файлы:
sapervodichka; +1 Ответить
35. sapervodichka 6190 12.01.22 19:26 Сейчас в теме
(34) нет этой картинки в УАС, получается. Спасибо, что написал, наверняка найдутся люди кому это пригодится.
38. maksa2005 370 08.02.22 07:47 Сейчас в теме
Поставил. обмены встали. пришлось убрать. пример ошибок:

Дата: 08.02.2022 9:45:51
Пользователь: Аренда
Комментарий:
Ошибка записи объекта
ТипОбъекта = Контрагент
Объект = ЭКСПЕДИЦИЯ, ООО
КСообщенияОбОшибках = 26
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(1754)}: ВызватьИсключение СтрокаСообщенияОбОшибке;
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(10195)}: ЗаписатьОбъектВИБ(Объект, ТипОбъекта, ЗаписатьОбъект, ОтправкаНазад);
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(16024)}: ПоследнийОбъектЗагрузки = ПрочитатьОбъект();
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(2667)}: ПроизвестиЧтениеДанныхВРежимеВнешнегоСоединения(ЧтениеСообщения);

Дата: 08.02.2022 9:45:51
Пользователь: ДСК
Комментарий:
Ошибка при записи документа: Поступление на расчетный счет 0К00-000033 от 07.02.2022 16:49:47. Описание ошибки: {Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(1807)}: Ошибка записи объекта
ТипОбъекта = Поступление на расчетный счет
Объект = Поступление на расчетный счет 0К00-000033 от 07.02.2022 16:49:47
КСообщенияОбОшибках = 26
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(10153)}: ВызватьИсключение СтрокаСообщения;
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(16024)}: ПоследнийОбъектЗагрузки = ПрочитатьОбъект();
{Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(2667)}: ПроизвестиЧтениеДанныхВРежимеВнешнегоСоединения(ЧтениеСообщения);

Дата: 08.02.2022 9:45:50
Пользователь: ДСК
Комментарий:
Ошибка при записи документа
ИмяПКО = ПоступлениеНаРасчетныйСчет
ТипОбъекта = Поступление на расчетный счет
Объект = Поступление на расчетный счет 0К00-000033 от 07.02.2022 16:49:47
ОписаниеОшибки = Ошибка записи объекта
ТипОбъекта = Поступление на расчетный счет
Объект = Поступление на расчетный счет 0К00-000033 от 07.02.2022 16:49:47
КСообщенияОбОшибках = 26
ПозицияМодуля = Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(1807)
КСообщенияОбОшибках = 25
39. sapervodichka 6190 08.02.22 10:58 Сейчас в теме
(38) Нужно поменять в расширении и указать, чтобы при обмене такие ошибки пропускались и загрузка продолжалась.
Можно перехватить и сюда Обработка.КонвертацияОбъектовИнформационныхБаз.МодульОбъекта(10195) вставить контроли, вместо подписок из расширения, а подписки убрать.
40. maksa2005 370 08.02.22 11:53 Сейчас в теме
(39)Это не решение проблемы.
41. sapervodichka 6190 08.02.22 11:55 Сейчас в теме
(40) не надо тут диктовать свои условия. Эта публикация шаблон стоимостью в 2 бутылки пива (а не платное поддерживаемое решение), если у тебя нет навыков подстроить под себя, то попроси специалиста.
42. maksa2005 370 08.02.22 11:57 Сейчас в теме
(41)Ни кто и не диктует? Вы видели хоть слово чтобы Я вам что-то диктовал? не помню чтобы на ты переходили...
Ставить закладки на каждое условие - это специалист. хахахахаха
43. sapervodichka 6190 08.02.22 11:59 Сейчас в теме
(42) условия в расширении описаны на объект (для примера в подписках + там еще описание про отказ указано, что надо делать чтобы пропускать такие ситуации), Сейчас мной тебе предлагается бесплатный совет вставить условия в обработку конвертации, перехватив в расширении метод записи, делается это 15 минут. (только не надо тут концерты устраивать)
44. Bair107 07.06.22 11:52 Сейчас в теме
Скачал версию с восстановлением, думал сейчас пропишу для справочника Номенклатуры
ЗаполнитьЗначенияСвойств(Источник, Источник.Ссылка);

исключение для владельца
ЗаполнитьЗначенияСвойств(Источник, Источник.Ссылка, , "Владелец");

Но после этого конфигурация (Бухгалтерия 3 последних релизов) начинает выдавать ошибки при запуске и при работе, что поле \владелец не найдено.

При том, даже если я верну код после этого в исходное состояние, ошибка не уходит)))

Подскажите, пожалуйста, как сделать исключение для Справочника номенклатуры, чтобы там Владелец не перезаполнялся.
45. sapervodichka 6190 07.06.22 12:27 Сейчас в теме
(44) Справочник.Номенклатура во всех решениях независимый, т.е. не имеет владельца, поэтому и выдается ошибка при попытке найти реквизит "Владелец" у номенклатуры (его там просто нет). Приложите картинки формы справочника и номер релиза БП, чтобы понять как реально называется этот реквизит.
46. Bair107 07.06.22 17:52 Сейчас в теме
(45) Да, я понимаю, что справочник независимый, но реквизит Владелец у него есть, с типом Неопределено. Скрины прикрепил. Я так понял именно из за этого и не работает процедура ЗаполнитьЗначенияСвойств и попытался исключить ненужные реквизиты.
Бухгалтерия предприятия, редакция 3.0 (3.0.112.34) Если просто подключить расширение и попытаться заблокировать элемент справочника номенклатура, то обмен не произойдет и выйдут ошибки

Ошибка записи объекта
ТипОбъекта = Номенклатура
Объект = 2"Шарнирное соединение 2-х ход Р-Г
ОписаниеОшибки = Справочник не имеет владельца
ПозицияМодуля = {ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(2482)}:Объект.Записать();
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(1949)}:ЗаписатьОбъектВИБ(КомпонентыОбмена, ДанныеДляЗаписиВИБ, ПравилоКонвертации.ТипДанных);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(6058)}:ДанныеДляЗаписиВИБ = СтруктураОбъектаXDTOВДанныеИБ(
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(2032)}:ПрочитатьСообщениеОбмена(КомпонентыОбмена, Результаты, ТаблицыДляЗагрузки);
{Обработка.КонвертацияОбъектовXDTO.МодульОбъекта(372)}:ОбменДаннымиXDTOСервер.ПроизвестиЧтениеДанных(КомпонентыОбмена);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6562)}:ОбработкаОбменаДаннымиXML.ВыполнитьЗагрузкуДанных(ПараметрыЗагрузки);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6089)}:ПрочитатьСообщениеСИзменениямиДляУзла(СтруктураНастроекОбмена, ПараметрыОбмена.ПолноеИмяФайлаСообщенияОбмена, ПараметрыОбмена.СообщениеОбмена);
{Обработка.ПомощникИнтерактивногоОбменаДанными.МодульМенеджера(155)}:ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазыЧерезФайлИлиСт­року(ПараметрыОбменаДанными);
{(1)}:Обработки.ПомощникИнтерактивногоОбменаДанными.ВыполнитьЗагрузкуДанных(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5263)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1124)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(437)}:ВызватьПроцедуру(ИмяПроцедуры, ПараметрыЭкспортнойПроцедуры);
{Обработка.ПомощникИнтерактивногоОбменаДанными.Форма.Форма.Форма(1907)}:Результат = ДлительныеОперации.ВыполнитьВФоне(

по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Справочник не имеет владельца
по причине:
Ошибка установки значения свойства 'Владелец'
по причине:
Справочник не имеет владельца
КСообщенияОбОшибках = 26
Показать


Направление: Получение.
ПОД: Справочник_Номенклатура_Получение.
ПКО: Справочник_Номенклатура_Получение.
Объект: Справочник.Номенклатура.

Ошибка записи объекта
ТипОбъекта = Номенклатура
Объект = 2"Шарнирное соединение 2-х ход Р-Г
ОписаниеОшибки = Справочник не имеет владельца
ПозицияМодуля = {ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(2482)}:Объект.Записать();
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(1949)}:ЗаписатьОбъектВИБ(КомпонентыОбмена, ДанныеДляЗаписиВИБ, ПравилоКонвертации.ТипДанных);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(6058)}:ДанныеДляЗаписиВИБ = СтруктураОбъектаXDTOВДанныеИБ(
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(2032)}:ПрочитатьСообщениеОбмена(КомпонентыОбмена, Результаты, ТаблицыДляЗагрузки);
{Обработка.КонвертацияОбъектовXDTO.МодульОбъекта(372)}:ОбменДаннымиXDTOСервер.ПроизвестиЧтениеДанных(КомпонентыОбмена);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6562)}:ОбработкаОбменаДаннымиXML.ВыполнитьЗагрузкуДанных(ПараметрыЗагрузки);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6089)}:ПрочитатьСообщениеСИзменениямиДляУзла(СтруктураНастроекОбмена, ПараметрыОбмена.ПолноеИмяФайлаСообщенияОбмена, ПараметрыОбмена.СообщениеОбмена);
{Обработка.ПомощникИнтерактивногоОбменаДанными.МодульМенеджера(155)}:ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазыЧерезФайлИлиСт­року(ПараметрыОбменаДанными);
{(1)}:Обработки.ПомощникИнтерактивногоОбменаДанными.ВыполнитьЗагрузкуДанных(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5263)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1124)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(437)}:ВызватьПроцедуру(ИмяПроцедуры, ПараметрыЭкспортнойПроцедуры);
{Обработка.ПомощникИнтерактивногоОбменаДанными.Форма.Форма.Форма(1907)}:Результат = ДлительныеОперации.ВыполнитьВФоне(

по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Справочник не имеет владельца
по причине:
Ошибка установки значения свойства 'Владелец'
по причине:
Справочник не имеет владельца
КСообщенияОбОшибках = 26
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(2500)}:ВызватьИсключение КомпонентыОбмена.СтрокаСообщенияОбОшибке;
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(1949)}:ЗаписатьОбъектВИБ(КомпонентыОбмена, ДанныеДляЗаписиВИБ, ПравилоКонвертации.ТипДанных);
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(6058)}:ДанныеДляЗаписиВИБ = СтруктураОбъектаXDTOВДанныеИБ(
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(2032)}:ПрочитатьСообщениеОбмена(КомпонентыОбмена, Результаты, ТаблицыДляЗагрузки);
{Обработка.КонвертацияОбъектовXDTO.МодульОбъекта(372)}:ОбменДаннымиXDTOСервер.ПроизвестиЧтениеДанных(КомпонентыОбмена);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6562)}:ОбработкаОбменаДаннымиXML.ВыполнитьЗагрузкуДанных(ПараметрыЗагрузки);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6089)}:ПрочитатьСообщениеСИзменениямиДляУзла(СтруктураНастроекОбмена, ПараметрыОбмена.ПолноеИмяФайлаСообщенияОбмена, ПараметрыОбмена.СообщениеОбмена);
{Обработка.ПомощникИнтерактивногоОбменаДанными.МодульМенеджера(155)}:ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазыЧерезФайлИлиСт­року(ПараметрыОбменаДанными);
{(1)}:Обработки.ПомощникИнтерактивногоОбменаДанными.ВыполнитьЗагрузкуДанных(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5263)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1124)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(437)}:ВызватьПроцедуру(ИмяПроцедуры, ПараметрыЭкспортнойПроцедуры);
{Обработка.ПомощникИнтерактивногоОбменаДанными.Форма.Форма.Форма(1907)}:Результат = ДлительныеОперации.ВыполнитьВФоне(
Показать
Прикрепленные файлы:
47. sapervodichka 6190 07.06.22 19:15 Сейчас в теме
(46) Ага примерно понял, тут нужен другой подход:

Вот сюда ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(2482): Объект.Записать();

Нужно вставить проверку и отказ от записи объекта, который присутствует в регистре заблокированных (условие словами пишу):

Если ЗначениеЗаполнено(Объект.Ссылка) И (Объект.Ссылка присутствует в РегистрСведений.зио_ЗакрытыеОтИзмененияОбъекты) Тогда 
    //Не записывать 
Иначе 
    Объект.Записать(); 
КонецЕсли
dvissarov5; Bair107; +2 Ответить
48. Bair107 15.06.22 06:40 Сейчас в теме
(47) Спасибо, это помогло. Забросил этот вопрос на время, сейчас снова начал и вдруг получил ошибку в другой процедуре

Ошибка при загрузке данных: Событие: Получение.
Обработчик: ОтложенноеЗаполнениеОбъектов.
Объект: Номенклатура, Емкость ПП белый (e1cib/data/Справочник.Номенклатура?ref=a50dac1f6b172b8b11e8d1d5abbbe8b6).

Ошибка выполнения обработчика.
Справочник не имеет владельца
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(5777)}:Объект.Записать();
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(2041)}:ОтложенноеЗаполнениеОбъектов(КомпонентыОбмена);
{Обработка.КонвертацияОбъектовXDTO.МодульОбъекта(372)}:ОбменДаннымиXDTOСервер.ПроизвестиЧтениеДанных(КомпонентыОбмена);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6562)}:ОбработкаОбменаДаннымиXML.ВыполнитьЗагрузкуДанных(ПараметрыЗагрузки);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6089)}:ПрочитатьСообщениеСИзменениямиДляУзла(СтруктураНастроекОбмена, ПараметрыОбмена.ПолноеИмяФайлаСообщенияОбмена, ПараметрыОбмена.СообщениеОбмена);
{Обработка.ПомощникИнтерактивногоОбменаДанными.МодульМенеджера(155)}:ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазыЧерезФайлИлиСт­року(ПараметрыОбменаДанными);
{(1)}:Обработки.ПомощникИнтерактивногоОбменаДанными.ВыполнитьЗагрузкуДанных(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5263)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1124)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1114)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);

по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Справочник не имеет владельца
по причине:
Ошибка установки значения свойства 'Владелец'
по причине:
Справочник не имеет владельца.
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(5797)}:ВызватьИсключение ТекстОшибки;
{ОбщийМодуль.ОбменДаннымиXDTOСервер.Модуль(2041)}:ОтложенноеЗаполнениеОбъектов(КомпонентыОбмена);
{Обработка.КонвертацияОбъектовXDTO.МодульОбъекта(372)}:ОбменДаннымиXDTOСервер.ПроизвестиЧтениеДанных(КомпонентыОбмена);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6562)}:ОбработкаОбменаДаннымиXML.ВыполнитьЗагрузкуДанных(ПараметрыЗагрузки);
{ОбщийМодуль.ОбменДаннымиСервер.Модуль(6089)}:ПрочитатьСообщениеСИзменениямиДляУзла(СтруктураНастроекОбмена, ПараметрыОбмена.ПолноеИмяФайлаСообщенияОбмена, ПараметрыОбмена.СообщениеОбмена);
{Обработка.ПомощникИнтерактивногоОбменаДанными.МодульМенеджера(155)}:ОбменДаннымиСервер.ВыполнитьОбменДаннымиДляУзлаИнформационнойБазыЧерезФайлИлиСт­року(ПараметрыОбменаДанными);
{(1)}:Обработки.ПомощникИнтерактивногоОбменаДанными.ВыполнитьЗагрузкуДанных(Параметры[0],Параметры[1])
{ОбщийМодуль.ОбщегоНазначения.Модуль(5263)}:Выполнить ИмяМетода + "(" + ПараметрыСтрока + ")";
{ОбщийМодуль.ДлительныеОперации.Модуль(1124)}:ОбщегоНазначения.ВыполнитьМетодКонфигурации(ИмяПроцедуры, ПараметрыВызова);
{ОбщийМодуль.ДлительныеОперации.Модуль(1114)}:ВызватьПроцедуру(ВсеПараметры.ИмяПроцедуры, ВсеПараметры.ПараметрыПроцедуры);
Показать



по аналогии зашел в ОбменДаннымиXDTOСервер.ОтложенноеЗаполнениеОбъектов и добавил проверку на заблокированный от записи объект

ПараметрыКонвертации = КомпонентыОбмена.ПараметрыКонвертации;
	ЗагруженныеОбъекты   = КомпонентыОбмена.ЗагруженныеОбъекты;
	
	Попытка
		КомпонентыОбмена.МенеджерОбмена.ПередОтложеннымЗаполнением(КомпонентыОбмена);
	Исключение
		
		ШаблонОписанияОшибки = НСтр("ru = 'Направление: %1.
		|Обработчик: %2.
		|
		|Ошибка выполнения обработчика.
		|%3.'");
		
		ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОписанияОшибки,
		КомпонентыОбмена.НаправлениеОбмена,
		"ПередОтложеннымЗаполнением",
		ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
		
		ВызватьИсключение ТекстОшибки;
		
	КонецПопытки;
	
	Для Каждого СтрокаТаблицы Из ЗагруженныеОбъекты Цикл
		
		Если СтрокаТаблицы.Объект.ЭтоНовый() ИЛИ зио_Сервер.ОбъектЗакрытОтОбмена(СтрокаТаблицы.Объект.Ссылка) Тогда
			Продолжить;
		КонецЕсли;
		
		СтроковоеПредставлениеОбъекта = ПредставлениеОбъектаДляПротокола(СтрокаТаблицы.Объект.Ссылка);
		
		НачатьТранзакцию();
		Попытка
			//Если зио_Сервер.ОбъектЗакрытОтОбмена(СтрокаТаблицы.Объект.Ссылка) Тогда
			//	Продолжить;
			//иначе	
				Блокировка = Новый БлокировкаДанных;
				ЭлементБлокировки = Блокировка.Добавить(ОбщегоНазначения.ИмяТаблицыПоСсылке(СтрокаТаблицы.Объект.Ссылка));
				ЭлементБлокировки.УстановитьЗначение("Ссылка", СтрокаТаблицы.Объект.Ссылка);
				Блокировка.Заблокировать();
				
				Объект = СтрокаТаблицы.Объект.Ссылка.ПолучитьОбъект();
				
				// Перенос дополнительных свойств.
				Для Каждого Свойство Из СтрокаТаблицы.Объект.ДополнительныеСвойства Цикл
					Объект.ДополнительныеСвойства.Вставить(Свойство.Ключ, Свойство.Значение);
				КонецЦикла;
				
				СтруктураПараметров = Новый Структура;
				СтруктураПараметров.Вставить("Объект",              Объект);
				СтруктураПараметров.Вставить("КомпонентыОбмена",    КомпонентыОбмена);
				СтруктураПараметров.Вставить("ОбъектМодифицирован", Истина);
				
				КомпонентыОбмена.МенеджерОбмена.ВыполнитьПроцедуруМодуляМенеджера(СтрокаТаблицы.ИмяОбработчика, СтруктураПараметров);
				
				Если СтруктураПараметров.ОбъектМодифицирован Тогда
					ОбменДаннымиСервер.УстановитьОбменДаннымиЗагрузка(Объект, Истина, Ложь, КомпонентыОбмена.УзелКорреспондента);
					Объект.ДополнительныеСвойства.Вставить("ПропуститьЗаписьВерсииОбъекта");
					Объект.Записать();
				КонецЕсли;
				
				ЗафиксироватьТранзакцию();
			//конецЕсли;
		Исключение
			ОтменитьТранзакцию();
			
			ШаблонОписанияОшибки = НСтр("ru = 'Событие: %1.
			|Обработчик: %2.
			|Объект: %3.
			|
			|Ошибка выполнения обработчика.
			|%4.'");
			
			ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ШаблонОписанияОшибки,
			КомпонентыОбмена.НаправлениеОбмена,
			"ОтложенноеЗаполнениеОбъектов",
			СтроковоеПредставлениеОбъекта,
			ПодробноеПредставлениеОшибки(ИнформацияОбОшибке())); 
			
			ВызватьИсключение ТекстОшибки;
		КонецПопытки;
		
	КонецЦикла;
Показать


не до конца понимаю, как это работает, подскажите, пожалуйста, как подправить.
49. SoftLeon 26 21.07.22 16:37 Сейчас в теме
В продолжение темы набросал на коленке обработку для занесения документов в регистр обработки по дату запрета редактирования (чтобы не заносить документы руками).
Прикрепленные файлы:
ЗанестиДокументыВЗИО.epf
sapervodichka; +1 Ответить
50. sapervodichka 6190 21.07.22 18:55 Сейчас в теме
(49) да, норм. Я расширение отдельно не использую, прикручиваю к плану обмена, где сочетаю: Блокировку за период, Блокировку по вида документов, Блокировку конкретных объектов. По видам документов выбор связываю со справочниками Идентификаторы объектов метеданных (и расширений)
Прикрепленные файлы:
51. Elfxf 15.09.22 15:38 Сейчас в теме
Добрый день! У меня стоит задача: не переписыть элементы справочника "Статьи ДДС". Выгрузка из ЕРП 2.5 в бухгалтерию 3.0. Ход только в одну сторону. Из БП не грузим
Вопросы:
1. Ставить расширение в обе базы или только в ту, которая является приемником?
2. Поставила расширение только в БП. Запрет почему-то не работает, в регистр ЗИО запись не пишется. Или в какой момент должна туда запись писаться? Замок на элементе справочника при нажатии на значек "Обмен" не отображается.
Прикрепленные файлы:
Оставьте свое сообщение

См. также

Архив элементов

Обработка справочников Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

В архив помещаются неактуальные элементы справочников. Тем самым появляется возможность выводить в справочнике для просмотра и выбора только актуальные в данный момент данные. Работает для всех справочников.

4 стартмани

07.11.2022    5089    23    sapervodichka    54    

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

Универсальные обработки Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    8488    63    sapervodichka    84    

Резервное копирование и восстановление 1С баз на PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика

Архивирование (backup) Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

В данной инструкции будет описано, как с помощью pgAdmin, bat-файлов и планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных.

07.10.2022    7340    sapervodichka    30    

Добавляем новый документ в обработку Диадок

Файловый обмен (TXT, XML, DBF), FTP Адаптация типовых решений Платформа 1С v8.3 Платформа 1С v8.3 1С:Комплексная автоматизация 2.х 1С:Комплексная автоматизация 2.х Абонемент ($m) Абонемент ($m)

Добавляем новый документ для подписания и отправки в обработку Диадок (через подключаемый модуль). Отправлять его будем, как неформализованный (внешняя печатная форма в формате pdf).

2 стартмани

07.10.2022    5130    9    John_d    20    

Гарантированное проведение документов (подключаемое расширение)

Обработка документов Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Гарантированное проведение указанного в регистре сведений списка документов. Регистрируем документы к проведению с помощью произвольных отборов СКД в регистре сведений, далее запускаем фоновое проведение в нескольких потоках. Проведенные документы удаляются из регистра, по непроведенным регистрируются ошибки.

4 стартмани

11.08.2022    5479    13    sapervodichka    27    

Мастер XML-обмена Промо

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Конфигурации 1cv7 Конфигурации 1cv7 Абонемент ($m) Абонемент ($m)

Функциональный аналог конвертации данных в кармане - комплекс обработок предназначенный для быстрой и удобной разработки обмена данными между информационными базами 1С.

5 стартмани

02.09.2015    43763    20    Lancelot-2M    23    

Ускорим проведение в 1С:Управление холдингом

HighLoad оптимизация Запросы Платформа 1С v8.3 Платформа 1С v8.3 1С:Управление холдингом 1С:Управление холдингом Бесплатно (free) Бесплатно (free)

В 1С:Управление холдингом есть "нехороший" запрос, который съедает значительную часть времени проведения документов. Если его подправить, то проведение заметно ускорится.

10.08.2022    4780    sapervodichka    60    

Динамическая кнопка VS Комбинация клавиш

Работа с интерфейсом Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

Часто требуется ко всем формам или к списку форм привязать новые действия. Но как это сделать не меняя каждую форму и в идеале не меняя конфигурацию? Ниже будет описано, как запрограммировать новые действия через расширение (т.е. не меняя конфигурации) и сделать это универсально (не меняя каждую форму).

08.08.2022    5196    sapervodichka    33    

Параметризация печатных форм под контрагентов (подключаемое расширение)

Печатные формы Адаптация типовых решений Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Расширение добавляет возможности параметризации печати для контрагентов. Подробнее описано здесь https://infostart.ru/1c/articles/1510459/

10 стартмани

05.08.2022    6091    9    sapervodichka    4    

Выгрузка данных из УТ 11.3/11.4 в БП 3.0 (перенос документов и справочной информации из "Управление торговлей" ред. 11.3/11.4 в "Бухгалтерия предприятием" ред. 3.0). Обновлен до УТ 11.3.4.х/11.4.7х и БП 3.0.7х.х Промо

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление торговлей 11 Абонемент ($m) Абонемент ($m)

Данная обработка предназначена для выгрузки в формате XML данных из программы «Управление торговлей» ред. 11.3/11.4 по основным группам документов (документы покупки/продажи товаров и услуг, складские документы, счета-фактуры, ценообразование), а также набор основных справочников. Загрузка данных в БП ред. 3.0 через обработку «Универсальный обмен данными XML». Основная цель обработки – оптимизация работы бухгалтеров во время обмена данными между программами, а также выборочная корректировка загруженных ранее документов.

1 стартмани

04.03.2016    74424    215    SEOAngels    67    

Просмотр объектов очереди сообщений в 1С:Документооборот

Адаптация типовых решений Документооборот и делопроизводство Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

В базах с бесшовной интеграцией с 1С:Документооборот есть Регистр сведений "Очередь сообщений в 1С:Документооборот". Для пользователя он мало информативен. Расширение позволяет просматривать сообщение в человеческом виде. И понимать проблему до объекта.

2 стартмани

02.08.2022    6130    17    sapervodichka    4    

Конвертация данных 2 и JSON

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Описание минимально необходимых изменений, которые нужно внести в обработку "УниверсальныйОбменДаннымиXML" для того, чтобы реализовать конвертацию объектов конфигурации в произвольный формат JSON.

1 стартмани

01.07.2022    5814    16    zhichkin    19    

Кратность в Юанях (CNY) 10 и 1

Запросы Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

Обратите внимание на обмены данными с Юанями. Кратность там меняется между 10 и 1, в зависимости от значения курса > 10 или < 10. Т.е. НЕ ВСЕГДА равна 1. А многие разработчики (в том числе и я) грешат, ставя Кратность = 1 по умолчанию в обменах и выгрузках. P.S. Идём на Восток, становимся хитрее.

10.06.2022    7773    sapervodichka    13    

Поддержка пользователей [Alt+S] (подключаемое расширение)

Анализ и проектирование ИТ-систем ServiceDesk, HelpDesk Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Расширение, подключаемое к базе 1С для решения задач поддержки пользователей. Позволяет быстро (по кнопке или комбинации клавиш Alt+S), не выходя из программы 1С из любой формы, создать обращение к консультантам и программистам со скринами, файлами, в привязке к проблемному объекту (документу, справочнику, отчету, обработке и т.п.). Вести переписку по обращениям, отслеживать их выполнение с трудозатратами и уведомлять участников через механизмы: Telegram, Обсуждения 1С и Электронную почту. Код открыт и расширение может развиваться и быть доработано под индивидуальные потребности.

9 стартмани

25.03.2022    9933    92    sapervodichka    16    

Интерактивная справка [Alt+I] (подключаемое расширение)

Анализ и проектирование ИТ-систем Управление знаниями (Knowledge Base) Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Дополнительная справка, подключаемая к базе 1С. Содержит дерево разделов и статьи. Позволяет создавать статьи с картинками, прикреплять к ним файлы и видео, а также связывать статьи с объектами 1С (документам, справочникам, отчетам). Вызывается на динамически создаваемую кнопку панели либо быстрой комбинацией клавиш Alt+I.

9 стартмани

10.03.2022    9112    82    sapervodichka    38    

Ошибка загрузки большого архива 1Cv8.dt в PostgresSQL на платформе 1С 8.3.19

Администрирование СУБД Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

1С для платформы 8.3.19 ускорили загрузку dt-файлов за счет разбивки на несколько фоновых заданий. В итоге словили ошибку блокировки при загрузке в СУБД PostgresSQL большого 1cv8.dt-файла размером 25 Gb "ERROR: canceling statement due to lock timeout". Напишу, как в итоге загрузили этот dt-файл.

30.01.2022    8587    sapervodichka    51    

[Розница 8. Аптека] Загрузка приходных накладных из файлов DBF Промо

Файловый обмен (TXT, XML, DBF), FTP Розничная торговля Платформа 1С v8.3 Платформа 1С v8.3 1С:Розница 1С:Розница Фармацевтика, аптеки Фармацевтика, аптеки Россия Россия Управленческий учет Управленческий учет Абонемент ($m) Абонемент ($m)

Внешняя обработка для загрузки документов «Поступление товаров» из файлов поставщиков в формате DBF для Розница 8. Аптека редакция 2.1. Для работы с дополнительными реквизитами и сведениями используется БДРС: http://infostart.ru/public/288722/ Для купивших БДРС предусмотрена скидка (второй файл - ...без БДРС - это для Вас). При написании использовался шаблон http://infostart.ru/public/303564/. Описание настройки интерфейса и регистрации обработки подробно можно посмотреть там. 20.03.2018 - Версия 3.2 для Розница - Аптека 2.2 (используется новая версия БДРС)

2 стартмани

11.05.2015    39472    0    Alex_E    12    

Привилегированные отчеты

Роли и права HighLoad оптимизация Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Расширение позволяет настроить для пользователей выполнение отчетов в привилегированном режиме. 1) Убирает тормоза формирования отчета, возникающие при наложении прав пользователя на запросы отчета; 2) Позволяет обойти ошибки формирования отчета из-за отсутствия прав на часть объектов у пользователя.

4 стартмани

24.01.2022    8886    24    sapervodichka    36    

Пульт управления телевизором LG Smart TV

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 Абонемент ($m) Абонемент ($m)

Пульт LG телевизором smart TV (2014 года). Цель - управлять телевизором из 1С. Может быть полезна тем, кто потерял и не может найти пульт ДУ, кто смотрит телевизор и сидит за ноутбуком одновременно, для изучения обмена xml с внешними устройствами, в данном случае телевизором.

1 стартмани

11.01.2022    9406    6    confer2003@mail.ru    52    

Создание стартовой базы

Обмен между базами 1C Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Часто требуется создать «Новую базу» почти пустую, но совпадающую с «Исходной базой» по необходимым обязательным настройкам: константам, регистрам сведений, справочникам, видам субконто и планами счетов и т.п., при этом уникальные идентификаторы объектов должны совпадать.

1 стартмани

11.10.2021    12585    23    sapervodichka    48    

АРМ "Касса-Лом". Обмен между 1С и учетной системой по оплате с физическими лицами за сдачу металлолома Промо

Оптовая торговля Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 Бухгалтерский учет Бухгалтерский учет 1С:Бухгалтерия 3.0 1С:Бухгалтерия 3.0 Россия Россия Бухгалтерский учет Бухгалтерский учет Абонемент ($m) Абонемент ($m)

АРМ "КАССА-ЛОМ" предназначено для проведения безналичных взаиморасчетов между физическими лицами-сборщиками металлолома и предприятиями, являющимися членами НП НСРО «РУСЛОМ.КОМ» и осуществляющими деятельность в области обращения с ломом и отходами металлов.

5 стартмани

23.09.2019    15078    24    vik070777    0    

Доп. панель Alt+Z

Инструменты администратора БД Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Панель, вызываемая для объекта комбинацией клавиш Alt+Z (для документа, справочника, плана вида характеристик, плана счетов и т.д.). Возможности: Редактор всех реквизитов, таблиц и движений, Анализ прав к объекту, Поиск ссылок на объект с фильтрами, Сторно движений документа, Выгрузка/загрузка текущего объекта между базами. Подключается как Расширение.

1 стартмани

24.06.2021    15990    159    sapervodichka    72    

Декларации по формам 7 и 8 алкогольной продукции, перенос данных из Декларант-Алко, импорт данных из файлов XML форм 11,12,7,8

Розничная торговля Регламентированный учет и отчетность Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 Управляемые формы Управляемые формы Розничная и сетевая торговля (FMCG) Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Рестораны, кафе и фаст-фуд Россия Россия Бухгалтерский учет Бухгалтерский учет Акцизы Акцизы Абонемент ($m) Абонемент ($m)

Конфигурация на управляемых формах, платформа 1С 8.3.10.2667 и выше, с помощью которой можно сформировать Декларации по формам 7 и 8 алкогольной продукции, выполнить перенос данных из ПО Декларант-Алко версии 4.31.05 и выше, импорт и загрузку из файлов XML форм 11,12,7,8. Есть возможность автоматического подписания и шифрации файла выгрузки.

1 стартмани

15.04.2021    15506    56    independ    41    

Обмен данными между УТ 10.3 и Розницей 2.2 (правила обмена данными между "Управлением торговлей" ред. 10.3. и "Розницей" ред. 2.2) Промо

Обмен между базами 1C Оптовая торговля Розничная торговля Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 1С:Управление торговлей 10 1С:Управление торговлей 10 1С:Розница 1С:Розница Управленческий учет Управленческий учет Абонемент ($m) Абонемент ($m)

Данные правила предназначены для обмена в формате XML данных из программы «Управление торговлей» ред. 10.3. и "Розница" ред. 2.2 по основным группам документов и основных справочников. Загрузка данных осуществляется через встроенную обработку «Универсальный обмен данными XML». Основная цель обработки – корректировка типовых правил на выявленные ошибки и расширение выгрузки для корректной выгрузки данных по ЕГАИС и продажам в целом. Протестировано до УТ 10.3.47.х и Розница 2.2.11.х

3 стартмани

16.09.2016    68398    19    SEOAngels    65    

Заполнение календаря 2021 (без интернета)

Учет рабочего времени Платформа 1С v8.3 Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:ERP Управление предприятием 2 Бухгалтерский учет Бухгалтерский учет Абонемент ($m) Абонемент ($m)

У клиента закрыт доступ к интернет сервису обновления классификаторов и старый релиз, поэтому не смогли обновить календарь на 2021 год автоматически через сервис. У календаря 2 варианта обновления: через макет и интернет сервис. Расширение заполняет календарь без интернета из актуального макета на 2021 год.

1 стартмани

05.01.2021    14410    5    sapervodichka    14    

Групповое добавление и удаление ролей из списка профилей

Роли и права Платформа 1С v8.3 Платформа 1С v8.3 Управление правами Управление правами Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Подключаемая обработка. Помогает при конструировании профилей доступа пользователей (настройке прав пользователей), экономит время на добавлении/удалении одной и той же роли сразу в нескольких профилях.

2 стартмани

14.12.2020    12428    59    sapervodichka    10    

Настройка обмена с любой устаревшей конфигурацией на базе 8.2 через обработку "Универсальный обмен данными в формате XML" и "Конвертацию данных 2.0"

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1C v8.2 Конфигурации 1cv8 Конфигурации 1cv8 Бухгалтерский учет Бухгалтерский учет Управленческий учет Управленческий учет Абонемент ($m) Абонемент ($m)

Разберем кейс, как настроить простенький обмен с любой устаревшей конфигурацией на базе 8.2 через обработку "Универсальный обмен данными в формате XML" и Конвертацию данных 2.0 с возможностью настройки гибких отборов по периоду, организации и списку документов.

1 стартмани

23.11.2020    25189    23    orfos    14    

Интерактивная справка по объектам 1С (подключаемое расширение)

Управление знаниями (Knowledge Base) Платформа 1С v8.3 Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:ERP Управление предприятием 2 Абонемент ($m) Абонемент ($m)

База знаний, подключаемая к объектам основной базы. Пополняется интерактивно, формируется в виде статей прямо в 1С (текст, картинки, таблицы, ссылки). Есть возможность прикрепления файлов, привязки к объектам 1С, возможности рейтинга и комментирования пользователями.

10 стартмани

29.09.2020    23141    134    sapervodichka    63    

Значения по умолчанию для пользователей (Расширение)

Администрирование СУБД Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

При заполнении документов и справочников пользователи часто сталкиваются с необходимостью ввода одних и тех же реквизитов. Заполнение в документах некоторых из них, таких как: Организация, Склад и т.п. - выполняется реализованным в 1С механизмом подстановки значения из последних 3-5 введенных документов. Если же вы хотите заполнять все реквизиты шапки (и даты, и флажки, и другие поля, включая дополнительные реквизиты), то вам поможет данный механизм.

4 стартмани

21.09.2020    18295    130    sapervodichka    44    

Контекст любого объекта конструкцией #Если Фамилия Тогда

Механизмы платформы 1С Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

Делаем инициализацию переменной в "своей" инструкции препроцессора, для получения контекстной подсказки объекта через точку. В дальнейшем в компилированном коде сама инициализация игнорируется, т.к. "своя" инструкция препроцессора НИКОГДА не выполняется.

17.08.2020    3418    sapervodichka    36    

Памятка работ по проекту 1С

Внедрение ИТ-системы 1С:Франчайзи, автоматизация бизнеса 1С:Франчайзи, автоматизация бизнеса Абонемент ($m) Абонемент ($m)

Схема работ по проекту внедрения 1С освежает в голове и визуализирует общую картину мероприятий. Будет полезно как для Заказчика, так и для Исполнителя при подготовке проекта и проведении совещаний по ходу проекта.

1 стартмани

23.07.2020    12365    sapervodichka    13    

Использование Стека вызовов в качестве условия оператора Если [...] Тогда

Механизмы платформы 1С Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Бесплатно (free) Бесплатно (free)

Делюсь интересным приёмом, позволяющим использовать данные стека исполнения кода 1С в качестве условия, накладываемого на выполнение кода.

12.07.2020    12470    sapervodichka    64    

Редактор объектов информационной базы 8.3 Промо

Универсальные обработки Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 Управляемые формы Управляемые формы Конфигурации 1cv8 Конфигурации 1cv8 Россия Россия Абонемент ($m) Абонемент ($m)

Универсальная внешняя обработка для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.65 от 17.01.2023

2 стартмани

23.01.2019    54846    645    ROL32    83    

Уведомление пользователей об изменениях в объектах (расширение)

Инструментарий разработчика Платформа 1С v8.3 Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Комплексная автоматизация 2.х Абонемент ($m) Абонемент ($m)

Позволяет без доработок настроить уведомления пользователям об изменениях объектов и их реквизитов. Уведомления отправляются в виде задач по проверке объектов с ссылками на объекты.

2 стартмани

06.07.2020    14286    56    sapervodichka    37    

Памятка работ по задаче 1С

Анализ и проектирование ИТ-систем Платформа 1С v8.3 Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Памятка выполняемых работ по решению длительных задач по 1С.

1 стартмани

25.06.2020    12338    sapervodichka    0    

Улучшенная обработка универсального обмена данными в формате XML (УФ)

Универсальные обработки Внешние источники данных Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Платформа 1С v8.3 Управляемые формы Управляемые формы Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Улучшенная обработка "Универсальный обмен данными" с полноценными возможностями СКД для выборки данных (не только для отборов).

1 стартмани

23.06.2020    21107    205    Lem0n    1    

Применение программистом таблицы рисков для оценки технического задания

Анализ и проектирование ИТ-систем Бесплатно (free) Бесплатно (free)

Я как программист часто получаю технические задания, по которым от меня хотят услышать оценку. Привожу описание метода оценки задания, заимствованный из проектной технологии, по которому я оцениваю тех. задания.

28.05.2020    13083    sapervodichka    75    

Добрый великан

Управление проектом Бесплатно (free) Бесплатно (free)

Руководители проектов определяют наше настоящее, каким оно будет?! Ответ прост - таким, каким и сам РП.

25.05.2020    7066    sapervodichka    1    

Настройка ограничений входа пользователей в базу (расширение)

Роли и права Платформа 1С v8.3 Платформа 1С v8.3 Управление правами Управление правами Конфигурации 1cv8 Конфигурации 1cv8 Абонемент ($m) Абонемент ($m)

Настраиваем для пользователей 1С разрешенное количество открытых сеансов к текущей базе данных 1С в привязке к компьютерам. (У пользователя не будет возможности превысить допустимое количество сеансов или зайти с чужого компьютера).

1 стартмани

19.05.2020    23058    55    sapervodichka    18