Имя: Пароль:
1C
1С v8
Добавление нового измерения в регистр сведений в расширении
,
0 Джун1С
 
19.07.23
10:33
Здравствуйте.

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

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

Впервые столкнулся с такой задачей, не могу решить. Буду благодарен за любую помощь (ссылка, совет, комментарий)
1 Ногаминебить
 
19.07.23
10:43
Процедуру записи в каждом регистраторе менять все равно придется. Добавленное измерение же само собой не заполнится. :) По надо ли переносить данные опять же вопрос тогда. А если б добавились в текущий - там по существующим записям новое измерение заполнять планировалось?
2 Fedor-1971
 
19.07.23
10:44
(0) тебе нужно будет изменить процедуры записи твоего нового измерения всюду (что можно сделать расширением)
Так, что - новый регистр в расширении + изменения процедур заполнения, таки вариант (перенеси существующие записи и будет тебе счастье). Как вариант заполнения нового регистра - поправь модуль набора записей у текущего для автоматического перенесения записей из оного в новый

Чисто на мой взгляд:
1. Открываешь редактирование регистра с сохранением поддержки
2. Добавляешь измерение (только с хитромудрым названием, например, чисто_НашРеквизит - т.е. используешь префикс для исключения пересечений при модернизации регистра от 1С)
3. Расширением поправляешь процедуры заполнения оного измерения

Преимущество - если, таки, отвалится расширение, то твои данные останутся целыми, придётся только переподключишь расширение для восстановления алгоритмов заполнения
3 Джун1С
 
19.07.23
10:50
По поводу переживаний о записях в регистраторе. Регистраторов всего 9, но в добавленное измерение записывают только два. Ну я и думал, что если остаётся старый регистр, то менять процедуры записи только в двух лучше, чем в девяти. (1) Мне понравился вопрос о заполнении измерений в существующие записи, спасибо за него!
(2) Изменять процедуры записи буду через расширение обязательно, т.к. вообще вся доработка идёт исключительно через расширения. Отсюда вытекает следующее: пункт с редактированием регистра полностью отпадает (иначе я бы не заморачивался).
4 Джун1С
 
19.07.23
11:06
upd. Может у кого-нибудь есть ещё какие-нибудь варианты?
5 Fedor-1971
 
19.07.23
11:06
(3) Так, это, хозяин - барин
Задай руководству вопрос - Сколько времени допустимо потратить на восстановление данных при обнаружении отвалившегося расширения (например, отвалилось 7-10 дней назад и, архив, если админы работают по уму, то будет на начало месяца)
В варианте "Доработка через расширение" - придётся изобресть способ вернуть записи за период наличия архива (т.е. разброс от "ВСЁ", до "От наличиствующего архива")
В варианте "Добавили в конфигурацию" - тупо переподключаем расширение с алгоритмом и проводим документы за сбойный период

Кроме того - добавление в расширении регистра автоматически отваливает работу всяких конструкторов запроса и прочих плюшек, т.к. вне расширения про то, что в него добавили ни кто не знает
6 Fedor-1971
 
19.07.23
11:06
(4) других вариантов просто нет
7 Джун1С
 
19.07.23
11:26
(5) К сожалению, вариант "Добавили в конфигурацию" не вариант. Моя головная боль - сделать изменения по данному регистру. Всё остальное - головная боль руководства (и отвалившееся расширение, и восстановление данных). Вот сижу думаю. (2) Можно немного подробнее вот про это "Как вариант заполнения нового регистра - поправь модуль набора записей у текущего для автоматического перенесения записей"?
8 Мимохожий Однако
 
19.07.23
11:42
(3) Если не все регистраторы используют добавляемое измерение, то логичнее добавить к этим регистраторам дополнительный реквизит и вести дополнительный отбор по нему. Измерение есть смысл добавлять только , если используется во всех регистраторах. Как вариант можно использовать добавление реквизита в регистре
9 Джун1С
 
19.07.23
12:13
(8) по регистру строится отчёт с учётом новых данных. Ну и опять таки, в расширение нельзя добавить даже реквизит
10 Fedor-1971
 
19.07.23
12:50
(7) Это вариант дублирования информации (с ростом размера БД):
Заходим в Модуль набора записей, в событии ПриЗаписи пишем код создания набора записей для твоего нового регистра (естественно, без заполнения нового реквизита) - т.е. при проведении документов, которым твой реквизит заполнять не нужно, в новый регистр пишется набор записей полная копия из стандартного.

Для 2-х документов делаешь сой код прямого заполнения нового регистра без записи в старый (иначе будет задвоение записей)
11 Fedor-1971
 
19.07.23
13:11
10+ Как-бы дублирование информации, но, если 1С захочет писать в регистр из других документов, то в твой автоматически попадут записи без изменения стандартного кода
12 Мимохожий Однако
 
19.07.23
16:17
(9) Я предложил добавить реквизит в регистратор - то бишь в документ. Это расширение позволяет.
13 Ногаминебить
 
19.07.23
16:27
(12) В первом сообщении довольно категорично озвучено требование добавить именно измерение. Возможно более подробное описание проблемы поможет подсказать лучшее решение. Из всего следующего текста закрадывается подозрение, что измерение действительно не особенно и необходимо. :)
14 Жан Пердежон
 
19.07.23
17:12
(0) В чем суть задачи? Может тебе ресурса хватит или реквизита
15 Джун1С
 
19.07.23
18:27
(12) Я на (8) ответил сразу на последнее предложение. А сам реквизит в регистраторах уже присутствует.
(13) Категорично оно звучит из-за задачи, которую передо мной поставили.
(14) Уточняю суть задачи: в двух регистраторах имеется реквизит в табличной части, который нужно записывать в регистр, как раз для этого и нужно добавить измерение, чтобы в дальнейшем получать отчёт, который формируется по условию с этого измерения
16 Мультук
 
гуру
19.07.23
18:58
(15)

>> Уточняю суть задачи: в двух регистраторах имеется реквизит в табличной части
Хорошо

>>который нужно записывать в регистр
Его также можно записывать в ресурс или реквизит, чтобы потом

>>в дальнейшем получать отчёт, который формируется по условию с этого {измерения/ресурса/реквизита}

Но вам виднее.
17 Мимохожий Однако
 
19.07.23
19:10
(15) Обычно в тех. заданиях нет жёсткого указания на способы решения. Описываются условия, цель и результат. А вот способы и алгоритмы в руках разработчика. Подозреваю, что задача неверно или неточно осмыслена.
18 Жан Пердежон
 
19.07.23
19:13
(15) суть то как раз и не уточнили. С чего взяли, что нужно именно измерение, а не ресурс или реквизит или в вообще отдельный регистр данные записывать
19 Джун1С
 
19.07.23
20:29
(16) Его нельзя записывать в ресурс или реквизит (регистра), так как на итс: Главная Инструкции по разработке на 1С Платформа 1С:Предприятие. Документация Платформа 1С:Предприятие 8.3.21 Руководство разработчика Глава 36. Расширение конфигурации 36.1.3. Особенности и ограничения
● Не поддерживается изменение структуры регистров всех видов. Поддерживается только расширение состава регистраторов.
Я могу перенести регистр в расширение, но не могу его там изменить, чтобы добавить измерение/ресурс/реквизит.
(17) Так как у меня мало опыта (имя на форуме как-бы намекает), то ТЗ у меня очень подробно расписано. В том числе там указано, цитирую: Доработка типового Регистра Сведений «___», в части добавления нового измерения «Действие», со значениями ____.
Данное измерение должно заполняться в соответствии с выбранным значением реквизита «Действие» в документе-регистраторе. Цитата полная, про расширение не сказано просто потому, что вообще все доработки ведутся там.
Может быть, если я не прав, и как-то можно всё же добавить к регистру в расширении измерение/ресурс/реквизит, то скажите мне, как это сделать. Я именно для этого и пришёл на форум, чтобы спросить совета.
(18) с ТЗ)
20 Джун1С
 
19.07.23
21:42
upd
21 Мультук
 
гуру
19.07.23
22:24
(20)

>> Доработка типового Регистра Сведений «___», в части добавления нового измерения «Действие»
>> ИТС говорит "нельзя через расширения"

Спросить старшего, добавить измерение в основную конфигурацию.

P.S.
Если конфигурация типовая (УТ/ERP/БП) и регистр типовой почему не написать их название?
Если не типовые, то чего вообще мучаться расширениями
22 timurhv
 
19.07.23
22:39
(19) >Я могу перенести регистр в расширение, но не могу его там изменить, чтобы добавить измерение/ресурс/реквизит.
Надо первоначально понять как строятся таблицы в расширениях при добавлении реквизитов в документы и справочники.
Условно получается сбоку к таблице документа новая ТаблицаРасширениеДокумент1, где будет присутствовать Ссылка документа + идентификатор реквизита + Значение. Основная таблица конфигурации остается неизменной.

Что мы получаем в случаях с регистрами сведений и накоплений?
Нам необходимо будет продублировать все измерения + добавить новое измерение из расширения. Это бессмысленно, а на больших регистрах и губительно. Добавляйте в cf и не мучайтесь, либо поднимите с постановщиком задачи этот вопрос.
23 Джун1С
 
19.07.23
23:21
(21) Регистр История Кадровых Резервов. Не уверен, что знание имени регистра как-то поможет в вопросе. Добавить измерение в основную конфу - это не вариант. Вот вообще нет. Вся разработка идёт посредством расширений.
(22) В cf нельзя, увы. Я бы вообще тему не поднимал тогда, и спокойно спал уже. Сверху тут уже говорили, что надо подумать на счёт дублирования в новый регистр, плюс задаться вопросом, что делать с предыдущими записями. Это всё узнаю завтра. Пока ищу альтернативы. Ну или кто-нибудь может подскажет, что имелось в виду в (16)
24 timurhv
 
20.07.23
01:15
(23)
>Ну или кто-нибудь может подскажет, что имелось в виду в (16)
>>Уточняю суть задачи: в двух регистраторах имеется реквизит в табличной части, который нужно записывать в регистр, как раз для этого и нужно добавить измерение, чтобы в дальнейшем получать отчёт, который формируется по условию с этого измерения
В ТЗ не прописано изменение типового регистра, где вы там это увидели? Плюс непонятно что за измерение вы хотите добавить, оно может поломать срез последних в типовых всех документах заполнения и отчетах (предположу срез последних подчиненный регистратору и используется в свойствах метаданных).

Для 2х документов можете создать свой регистр с 2 регистраторами (может даже упрощенный состав измерений), писать туда свой набор данных. А в отчетах соединять с проверкой на ЕСТЬNULL.
25 Джун1С
 
20.07.23
07:15
(24) "В ТЗ не прописано изменение типового регистра" - я в (19) описал ТЗ дословно "доработка типового регистра, в части добавления нового измерения".
Для 2х документов можете создать свой регистр с 2 регистраторами - пока всё к этому и идёт, потому что я не знаю, что ещё можно придумать
26 Мимохожий Однако
 
20.07.23
07:36
(25) В противоречивых случаях надо уточнять ТЗ у Заказчика. В данной ситуации - самое время. Если дело только в отчётах, то регистр можно не трогать вообще. Какая совместимость у расширения? Конфигурация типовая или учебная?
27 DrZombi
 
гуру
20.07.23
08:02
(0) Это можно сделать.
1. Снять с поддержки Конфигурацию. (полностью)
2. Добавить свое поле в конфигурацию.
3. Создать свою конфигурацию поддержки.
4. Повторно подписаться на основную поддержку, при этом аккуратно указать что не надо удалять ваши дополнения в метаданных.

5. Итоге у вас основная конфигурация на замке, кроме вашего добавленного измерения.
6. Минус этого всего, вам придется ВСЕГДа менять везде код, что бы ваше измерение так же использовалось, т.к. разработчик о вас не знает, и не пишет код с вашими бзиками :)

...Пользуйтесь...
https://xn--1--rlchba2deh.xn--p1ai/статьи/снять-и-поставить-1с-на-поддержку
28 Джун1С
 
20.07.23
08:02
(26) Можно пока про "Если дело только в отчётах, то регистр можно не трогать вообще" подробнее? Если просто с документов вытягивать, то это точно не вариант, база огромная
Совместимость 8.3.17, конфа типовая ЗУП 3.1 КОРП
29 DrZombi
 
гуру
20.07.23
08:03
+(27)  Пунктик пропустил.

3.1 Установить свою поддержку в качестве основной. Это надо, что бы замки все обратно встали.
30 DrZombi
 
гуру
20.07.23
08:04
+(27) Пунктик пропустил.

3.2 Что бы установить конфигурацию на поддержку, надо просто её Загрузить... :)
Не объединить, а просто Загрузить...
Данные не потеряются :)
31 DrZombi
 
гуру
20.07.23
08:10
+ (27) Эх, ... дописка к пункту № 4.

Что бы вернуться на основную поддержку, надо

4.1 В настройке поддережки... Нажать галочку "Включить возможность изменения"
4.2 После просто обновляем основную конфигурацию на тот же релиз.
    При этом система сама попросит установить на поддержку, не отказываем.
     Да лее по диалогам, штатно.
    При сверке не забываем убрать галочки со своих объектов.
32 DrZombi
 
гуру
20.07.23
08:11
+ (0) Итого вот как быть.

(0) Это можно сделать.
1. Снять с поддержки Конфигурацию. (полностью)
2. Добавить свое поле в конфигурацию.
3. Создать свою конфигурацию поддержки.
  3.1 Установить свою поддержку в качестве основной. Это надо, что бы замки все обратно встали.
  3.2 Что бы установить конфигурацию на поддержку, надо просто её Загрузить... :)
       Не объединить, а просто Загрузить...
        Данные не потеряются :)
4. Повторно подписаться на основную поддержку, при этом аккуратно указать что не надо удалять ваши дополнения в метаданных.
   4.1 В настройке поддережки... Нажать галочку "Включить возможность изменения"
   4.2 После просто обновляем основную конфигурацию на тот же релиз.
       При этом система сама попросит установить на поддержку, не отказываем.
          Далее по диалогам, штатно.
       При сверке не забываем убрать галочки со своих объектов.

5. Итоге у вас основная конфигурация на замке, кроме вашего добавленного измерения.
6. Минус этого всего, вам придется ВСЕГДа менять везде код, что бы ваше измерение так же использовалось, т.к. разработчик о вас не знает, и не пишет код с вашими бзиками :)

...Пользуйтесь...
https://xn--1--rlchba2deh.xn--p1ai/статьи/снять-и-поставить-1с-на-поддержку
33 Джун1С
 
20.07.23
08:31
(32) Спасибо) Оставлю как дополнительный вариант, если другие предложения не подойдут)
34 Михаил Козлов
 
20.07.23
09:43
Заполнение нового измерения можно делать в модуле набора записей регистра в ПередЗаписью (чтобы не править в документах).
35 Мимохожий Однако
 
20.07.23
13:32
(28) Не надо вытягивать с документов. Достаточно добавить группировку по добавленному реквизиту регистратора (документа)
36 Ногаминебить
 
20.07.23
13:52
(15) Может цель такой постановки задачи - как раз получить в ответ аргументированные доводы почему не стоит этого делать? :)
(28) А добавить новое измерение в регистр в ЗУПе - это типа норм? А потом вдруг бац и уникальность записей совсем не та, на которую разрабы рассчитывали.
37 Мультук
 
гуру
20.07.23
15:06
(36)

>> А потом вдруг бац и уникальность записей совсем не та, на которую разрабы рассчитывали.

Ну, пока это будет...
А тут:
- задача в битриксе закрыта
- expirience получен
- не за горами level-up
38 Джун1С
 
20.07.23
15:09
Всем большое спасибо, тему можно закрывать.
В моей теме закрались 2 ошибки, из-за которых мы тут собрались) Во-первых (это не самое страшное), нужно было добавить не измерение, а конечно же ресурс (как тут правильно заметили несколько раз). Здесь я виноват только в том, что плохо понимаю работу регистров. Во-вторых, из-за чего больше всего у меня было проблем - снимать с замочка конфу можно, и собственно регистр надо исправлять именно в основной конфе. Всё же я неправильно понял данный момент, про расширения там другое было. Зато отношусь позитивно к этому, столько много интересного узнал (плюс добавление второго регистра тоже довольно неплохая тема по идее, не надо будет ковырять зря типовой регистр). Сильно не ругайте, я только учусь)) Обязательно вернусь сюда с новым вопросом)
39 Джун1С
 
20.07.23
15:09
(37) Очень даже за горами, я только начал) А опыт - это да, это получено)
40 unenu
 
20.07.23
15:22
(27) Зачем так сложно и вести людей через болото снять все с поддержки/ поставить на поддережку?

может просто в настройке поддержки найти регистр и установить "Редактирется с сохранением поддержки".

- все замки на остальных объектах будут на месте
- этот регистр на поддержке
- в этот регистр можно толкать свои поля
41 Проводкин
 
21.07.23
10:16
(0) нечто подобное вчера рассматривали на конференции Раруса
42 Джун1С
 
21.07.23
12:18
(41) Интересно, хоть к этой задаче уже не нужно. Попробую в интернетике найти, спасибо)
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.