|
v7: запись нового реквизита справочника типа "Строка" | ☑ | ||
---|---|---|---|---|
0
Norbertano
13.05.19
✎
19:22
|
Добрый день. 9 лет не работал с 7.7, но вот пришлось лезть в одну конфигурацию. Для переноса данных в 8.3 решил предварительно записать уникальный идентификатор, но в реквизит значение не присваивается. Подскажите, вроде бы все правильно делаю.
сз = СоздатьОбъект("СписокЗначений"); сз.ДобавитьЗначение("Справочник.Номенклатура"); сз.ДобавитьЗначение("Справочник.Контрагенты"); Для Инд = 1 По сз.РазмерСписка() Цикл вид =сз.ПолучитьЗначение(Инд); СпрСотр = СоздатьОбъект(вид); СпрСотр.ВыбратьЭлементы(); Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл Спр=СпрСотр.ТекущийЭлемент(); Инфо = СоздатьОбъект("AddIn.V7SysInfo"); ГлобальноУникальныйИдентификатор = Инфо.СоздатьGUID(); Спр.guid = ГлобальноУникальныйИдентификатор; Спр.Записать(); Сообщить(вид + " " + ГлобальноУникальныйИдентификатор); КонецЦикла; КонецЦикла; |
|||
1
MWWRuza
гуру
13.05.19
✎
19:51
|
СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл Инфо = СоздатьОбъект("AddIn.V7SysInfo"); ГлобальноУникальныйИдентификатор = Инфо.СоздатьGUID(); СпрСотр.guid = ГлобальноУникальныйИдентификатор; СпрСотр.Записать(); Сообщить(вид + " " + ГлобальноУникальныйИдентификатор); КонецЦикла; |
|||
2
Norbertano
13.05.19
✎
19:53
|
(1) так было изначально, тоже не записывает
|
|||
3
MWWRuza
гуру
13.05.19
✎
20:01
|
Должно записывать. В отладчике смотрите...
Инфо - формируется? Тип значения реквизитов guid справочников - строка ? Достаточной длины? Права у пользователя, запускающего обработку, достаточные? |
|||
4
Злопчинский
13.05.19
✎
20:23
|
(2) лабуда, в (1) код правильный.
а... Спр=СпрСотр.ТекущийЭлемент(); Спр.guid = ГлобальноУникальныйИдентификатор; Спр.Записать(); ...не прокатит, потому что "Спр" - ссылка, а не спозиционированный обьект |
|||
5
HawkEye
13.05.19
✎
22:16
|
(0) что говорит отладчик? что говорит сообщить?
|
|||
6
victuan1
14.05.19
✎
05:51
|
Не нужен реквизит вообще.
ЗначениеВстрокуВнутр(СпрСотр.ТекущийЭлемент()) уже дает уникальное значение для любого элемента справочника. Нет необходимости его хранить дополнительно в виде реквизита. |
|||
7
hhhh
14.05.19
✎
06:06
|
(6) нет это фигня к вас получится. в 2х базах будет одно и то же значение для элемента справочника. Особенно, если базы созданы друг из друга копированием.
|
|||
8
DrZombi
гуру
14.05.19
✎
06:14
|
(0) Любопытный подход, "если уидов нет, мы их сгенерим, что бы быль"
Дарю http://scheglov-sergey.narod.ru/1c/sprav.htm |
|||
9
victuan1
15.05.19
✎
04:49
|
(7) Во-первых, задача стоит перенести данные из 7.7 в 8.3. Т.е. вторая база уже никак не будет результатом копирования первой.
Во-вторых, никто не мешает к УИД добавить произвольный префикс базы. Именно такой принцип синхронизации используется при переносе данных между базами 1С 7.7, например, здесь http://catalog.mista.ru/public/14395/ Так что это уже не теория, а практика проверенная временем. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |