Романовский Дмитрий

20
Рейтинг

vdscom
Дмитрий Романовский



  •   Регистрация: 07.10.2008 (15 лет назад)

  •   Был(а) на сайте: 25.04.2024

Друзья
  • Анатолий Король
Подписчики 3

Рейтинг 20

Программисту на заметку: отбор в динамическом списке формы выбора справочника по вхождению значения отбора в заданный список значений

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

В конфигурации ведется учет по нескольким организациям. Возникла задача для каждой конкретной организации при выборе элемента справочника "Классификатор статей доходов и затрат" в форме выбора отображать только допустимые именно для этой организации элементы справочника. Ниже предлагается вариант решения этой задачи.

23.09.2013    11117    vdscom    9       

1

Программисту на заметку: автозаполнение реквизитов документов и справочников

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

Часто бывает необходимым, чтобы при создании документа, элемента справочника автоматически заполнялись заданным значением определенные его реквизиты. Ниже предлагается вариант реализации механизма автозаполнения реквизитов документов по заданным условиям.

23.09.2013    49690    vdscom    13       

16

Программисту на заметку: "изменение" GUID объекта метаданных

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

Методика "изменения" внутреннего идентификатора объекта метаданных с помощью конфигурации "Конвертация данных"

23.09.2013    21022    vdscom    30       

3

Комментарии

НовостиУшел из жизни Павел Чистов#20 01.08.21 0:04
реально грустно...
смотрел некоторые его видео
а его раскладка клавиатуры для меня оказалась незаменимой...
ОбменDaJet Exchange: обмен данными с 1С (часть 1)#8 17.01.21 21:52
(5)

Цитата
В данном случае используется отслеживание изменений с данными, чтобы избежать блокировок на таблице регистрации изменений (очереди).
Навскидку могу предположить, что указанная ниже структура измерений регистра сведений, регистрирующего изменения, позволит избежать блокировок:
Объект,
ВерсияОбъекта (или время регистрации, в миллисекундах),
УзелОбмена

При чтении из регистра сведений выбираем все записи по узлу обмена, сворачиваем по объекту, получаем и переносим актуальные на текущий момент данные, очищаем эти записи. Если объект будет повторно изменен в момент выполнения обмена, в регистре появится новая запись по этому объекту, без конфликта блокировок

Цитата
По второму замечанию согласен с Вами. В статье дополнительно указываю на то, что зависимости объектов между собой могут быть сложнее, чем просто "документ и его движения". Кроме этого бывают ещё регистры сведений, где документ является ведущим измерением, а также имеющие схожую логику зависимости.
Полагаю, что для решения проблемы сложных зависимостей данные нужно регистрировать и переносить не пообъектно, а потранзакционно
ОбменDaJet Exchange: обмен данными с 1С (часть 1)#4 17.01.21 16:43
Добрый день

Цитата
Информационная база (узел обмена) 1С выполняет только три функции:
- регистрация изменений объектов 1С;
- формирование сообщения об изменении в формате JSON;
- помещение сообщения в исходящую очередь в одной транзакции с изменением объекта 1С.

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

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

Во всяком случае, именно так я реализовывал свою регистрацию изменений для обмена
Devчтение макетов с объединенными ячейками#2 22.07.20 22:47
Код
            зн = ExcelЛист.Cells(стр,кол).Value;
            // разделяем объединенные ячейки и распределяем между ними их числовое содержимое
            Если зн <> Неопределено и ТипЗнч(зн) = Тип("Число") и ExcelЛист.Cells(стр,кол).MergeCells = Истина Тогда
               // количество строк и колонок выделенной области
               квоСтр = ExcelЛист.Cells(стр,кол).MergeArea.Rows.Count;
               квоКол = ExcelЛист.Cells(стр,кол).MergeArea.Columns.Count;
               // количество ячеек выделенной области
               квоЯчеек = квоСтр*квоКол;
               // координаты начальной ячейки области
               начСтр = ExcelЛист.Cells(стр,кол).MergeArea.Row;
                                        начКол = ExcelЛист.Cells(стр,кол).MergeArea.Column;
                                        // координаты конечной ячейки области
                                        конСтр = начСтр+квоСтр-1;
                                        конКол = начКол+квоКол-1;
               // разделяем ячейки
               ExcelЛист.Cells(стр,кол).UnMerge();
               // распределяем между ячейками числовое содержимое
               Для стрМ = 0 по квоСтр-1 Цикл
                  Для колМ = 0 по квоКол-1 Цикл
                     ячЗн = Окр(зн/квоЯчеек,0);
                     ExcelЛист.Cells(начСтр+стрМ,начКол+колМ).Value = ячЗн;
                     зн = зн-ячЗн;
                     квоЯчеек = квоЯчеек-1;
                  КонецЦикла;
               КонецЦикла;
               // заново считываем значение реквизита строки
               зн = ExcelЛист.Cells(стр,кол).Value;
            КонецЕсли;
DevДокумент на документ. Автоматическое создание связанных документов#26 01.05.20 21:04
(25)
Добрый день
Свою разработку я не публиковал, а названий подобных статей на инфостарте за истечением сроков давности я уже не помню.
DevДокумент на документ. Автоматическое создание связанных документов#20 18.09.19 17:38
(19) приходилось заморачиваться :)

1. применялась следующая логика: все подчиненные документы имеют статус документа-основания (ПометкаУдаления,Проведен), время подчиненного документа на секунду больше предыдущего
2. УстановитьСсылкуНового - еще как помогает

да, все документы проводятся в одной транзакции. но, по этой логике, так и должно быть
DevДокумент на документ. Автоматическое создание связанных документов#16 18.09.19 11:37
(15) зачем так сложно ? подписка на событие - наше все :)
разумеется, не при обработке события ПослеЗаписи формы...
DevДокумент на документ. Автоматическое создание связанных документов#8 16.09.19 14:40
(7)

я реализовывал документ КомплектДокументов, который сам не делал никаких движений, но являлся рамочным документом (документом-основанием) для произвольного количества обычных документов. взаимосвязи между подчиненными документами настраивались визуально, и сохранялись в справочнике настроек. на инфостарте было несколько подобных разработок

суть такого пакетного создания комплекта документов - реализовать сложный функционал "виртуального" документа путем разложения его в базисе обычных, "атомарных" документов. в данном случае как раз и применима логика примера, описанного автором этой статьи
DevДокумент на документ. Автоматическое создание связанных документов#6 16.09.19 14:27
(5) Потому что документ - это чья-то персональная ответственность.

в данном примере и документ Перемещение, и документ РасходныйОрдер - вполне могут быть персональной ответственностью одного конкретного сотрудника, и ВСЕГДА должны и создаваться, и модифицироваться синхронно. зачем тогда разбивать цепочку их создания на 2 отдельных процесса ?

то есть - применимость этого метода полностью зависит от конкретных условий поставленной задачи
DevДокумент на документ. Автоматическое создание связанных документов#1 16.09.19 10:08
Добрый день.

я тоже иногда так поступаю. и не считаю это костылем.

в приведенном вами примере: использование цепочки взаимосвязанных документов лучше и с точки зрения разделения функционала, и с точки зрения дальнейших доработок/обновлений конфигурации, чем дублировать логику подчиненного документа в документе-основании

хотя, согласен, могут быть и ситуации, где такой подход неприемлем