#0
by KonstantinK90
Всем привет! Помогите разобраться как сделать создаю номенклатуру заполняю нужные реквизиты далее записываю! но вопрос как сделать что бы этой созданной номенклатуре присвоить свой идентификатор! Дело в том что я загружаю XML файлик с номенклатурой к себе в базу и моей созданной номенклатуре нужно присваивать идентификатор из XML.Подскажите как присвоить идентификатор!
#2
by d546
УникальныйИдентификатор.Из строки (UUID.From line) УникальныйИдентификатор (UUID) Из строки Синтаксис: Новый УникальныйИдентификатор(<Строка>) Параметры: Тип: Строка. Строка GUID. Строка задается в виде "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", где Х - символы обозначающие шестнадцатеричное число. Описание: Создает уникальный идентификатор из указанной строки GUID. Уникальность полученного таким образом идентификатора определяется уникальностью строки и поэтому не гарантирована. Пример:
#5
by DTX 4th
+ Прикладные объекты/Справочники/СправочникОбъект.<Имя справочника>/Методы/УстановитьСсылкуНового
#6
by NafBF
СправочникМенеджер.<Имя справочника>.ПолучитьСсылку (CatalogManager.<Имя справочника>.GetRef) СправочникМенеджер.<Имя справочника> (CatalogManager.<Имя справочника>) ПолучитьСсылку (GetRef) Синтаксис: ПолучитьСсылку(<УникальныйИдентификатор>) Параметры: Тип: УникальныйИдентификатор. Уникальный идентификатор, из которого будет формироваться ссылка. Возвращаемое значение: Тип: СправочникСсылка.<Имя справочника>. Описание: Формирует ссылку из значения типа УникальныйИдентификатор. Данный уникальный идентификатор может быть в дальнейшем получен из ссылки методом УникальныйИдентификатор. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Примечание: Если параметр не указан, то будет сформирована новая уникальная ссылка. См. также: СправочникСсылка.<Имя справочника>, метод УникальныйИдентификатор -------------------------------------------------------------------------------- Методическая информация
#7
by KonstantinK90
интересно у меня в xml файле идентификатор к примеру такого вида "a763cfbbf94f4c678e130e96a3a7f353" без дефиса! Получается дефис обязан присутствовать в идентификаторе!???
#9
by Skylark
""a763cfbbf94f4c678e130e96a3a7f353" без дефиса" это не УИД а идентификатор. Добавляй реквизит "Идентификатор" и синхронизируй по нему.
#10
by KonstantinK90
"a763cfbbf94f4c678e130e96a3a7f353" без дефиса" это не УИД а идентификатор------- а УИД чем отличается от идентификатора????
#12
by Skylark
И получить переменную с типом УИД можно конструктором на основании строки. Но для этого строка должна иметь определенный вид, т.е. "с дефисами".
#14
by KonstantinK90
блин чет я тогда запутался а как тогда мне моей новой номенклатуре( которую я создаю присвоить свой идентификатор без пробела полученный из xml a763cfbbf94f4c678e130e96a3a7f353)
#16
by 1c_July
+15, извините за некрасивый код, давно не писала сюда, забыла как красиво оформить и могут быть ошибки, т.к. надергала немного из разных мест, чтобы идею показать Делала так, чтобы перенести из одной базы в другую созданные новые объекты, базы почти идентичные, но пару полей добавлено, из-за чего универсальной выгрузкой-загрузкой не перенести. И при этом нужно именно ссылки чтобы точно были перенесены - для возможности некоторых сверок со второй базой.
#18
by Skylark
УнИд = новый УникальныйИдентификатор(ГуидИзXML); Вот здесь у тебя сразу же будет ошибка, если параметр как у тебя без дефисов.
#21
by youalex
представление типа a763cfbbf94f4c678e130e96a3a7f353 соотносится с представлением типа a763cfbb-f94f-4c67-8e13-0e96a3a7f353 т.е. блоки a763cfbb, f94f и т.д. - находятся на определенных позициях в представлении без дефисов можно визуально эти позиции найти, взяв любую ссылку, и получить ее уид (Строка(Ссылка.УникальныйИдентификатор) и внутр. представление : ЗначениеВСтрокуВнутр(Ссылка)
#23
by 1c_July
Может быть убого получилось, но ничего лучше не придумала, когда обнаружила, что при подключении через COM ко второй базе никак не могу в результате запроса ссылку получить, чтобы сопоставлять сразу с объектами первой базы. Сравнение по кодам, наименованиям и проч. - не подходило, т.к. наплодили дубликатов в справочнике, бардачок-с. И, кстати, хотела спросить уже в новой ветке, но может быть тут кто-то увидит и ответит - и правда никак нельзя выбирая запросом ссылки во второй базе получить их как при обмене через xml (то, что получается через чтение-запись XMLЗначение)?
#26
by KonstantinK90
как мне вот эту строку a763cfbbf94f4c678e130e96a3a7f353 (из xml) перевести вот в такой формат a763cfbb-f94f-4c67-8e13-0e96a3a7f353
#27
by 1c_July
в моем примере ГуидИзXML - это то, что было записано в файл как: Файл.ЗаписатьАтрибут("ЯчейкаСсылка",XMLСтрока(стр.ЯчейкаСсылка)); и потом прочитано через ЧтениеXML.ПрочитатьАтрибут ... ЧтениеXML.Значение Т.е. то, что при использовании XMLЗначение(Тип("СправочникСсылка.МестаХранения"),ГуидИзXML) дает сразу ссылку на объект в 1с, если он есть, или же пишет "Объект не найден"
#28
by Skylark
Через СОМ когда обращаешься: получишь строку вида a763cfbb-f94f-4c67-8e13-0e96a3a7f353 и по ней уже в базе-приемнике можешь создать УИД и по нему искать ссылки
#29
by Mauser
Интересно, а вот название секции "Убийцы 1С" - оно к программам относится, или к программистам?
#30
by youalex
ну смотри внимательно: у тебя здесь похоже, просто дефисы убраны накой-то. Добавь дефисы по формату гуида
#35
by trdm
А секция "Убийцы 1С" поставлена с целью намека на то, что кривые руки сами подорвут престиж 1С-а? :)
#36
by 1c_July
Посмотрела еще раз под отладкой обработку запроса. Смотрите, подключение ко второй базе, в нем выполняется запрос, одно из полей - ссылка по справочнику номенклатуры. При обходе результата запроса отладка показывает, что текстр.СсылкаНоменклатура - это COMОбъект, текстр.СсылкаНоменклатура.УникальныйИденификатор - тоже COMОбъект, и, соответственно XMLСтрока от всего этого дает ошибку. Ни одно из свойств COMОбъекта не похоже на возможность связи с ун.ид-ром. (Т.е. используется Запрос = Соединение.NewObject("Запрос");) Единственное, может нужно было полностью процедуру во второй базе сделать, возвращающую нужные данные с уже преобразованными в строки ссылками и при подключении ее вызывать, а не создавать запрос. Вы это имели в виду?
#37
by Garykom
будет особенно интересно когда полученные из XML "уникальные идентификаторы" - уникальны только в пределах файла/выгрузки ))
#38
by 1c_July
в моем случае - (выгруженные как XMLСтрока ссылки и загруженные через XMLЗначение) - точно такого не было. Специально проверяла на тот случай, если из-за сбоя не все с первого раза загрузится, чтобы при повторной попытке не дублировалось. Ну и в противном случае не вышло бы сопоставление с уже существующими записями в справочнике. Т.е. по одному и тому же гуиду всегда четко получается один и тот же идентификатор и соответственно по нему - ссылка. Но это при заранее известном типе объекта, по которому получаем идентификатор. Ну и оговорюсь опять же, а то сбивчиво как-то вчера писала - вторая база у меня копия первой + несколько новых записей, которые требовалось перетащить (соответственно я полагаюсь на то, что ссылки старых записей одинаковые), может у автора совсем другая цель этих преобразований.
#39
by 1c_July
Но это при заранее известном типе объекта, по которому получаем идентификатор. Тут, конечно, имеется в виду при известном типе объекта, ссылку на который "вычисляем" по идентификатору
#40
by 1c_July
а насчет дефисов (только вот нашлось время вникнуть в написанное об этом в ветке) что хотела спросить - а откуда Вы эту строку без дефисов взяли? Не из представления ли битой ссылки, наподобие такого: <Объект не найден> (114:80f40cc47a4f042511e69b40d4d7ea66) ? Если да, то правильно тут писали - это совсем не тоже что гуид, по которому можно получить идентификатор и насильно присвоить новому создаваемому объекту через метод УстановитьСсылкуНового. Т.е. наверное по этой строке ид-р сгенерить-то можно, но в итоге точно такой же ссылки у нового объекта не получится. Я тоже сначала, увидев такие битые ссылки при подтягивании информации из второй базы, подумала, что нужно как-то по вот по этому коду, который после двоеточия, создавать объекты. Но затем увидела, что сохраненный в файле гуид (там он как раз с дефисами), который при загрузке преобразуется в такую битую ссылку из-за отсутствия объекта - отличается не только дефисами, там вообще цифры другие. Т.е. один из другого подстановкой/убиранием дефисов не получить. А как по вот именно этим цифрам из визуального представления битой ссылки получить уд.идентификатор как объект, чтобы подставить в создаваемый элемент справочника, чтобы получилась такая же ссылка - вот это не знаю.. Если это в принципе возможно, тоже с интересом почитаю. (фух, что не пишу, все время "дом, который построил Джек" выходит :) )
#41
by 1c_July
+ ну если это не так, стоит задуматься над самыми первыми ответами в теме - действительно ли это то, из чего надо получить именно ун.идентификтор как специальный объект 1с и привязывать к нему создаваемую запись. Или все же это некий доп. идентификатор (для обмена или еще чего), который надо именно отдельным полем держать (как есть в виде этой строки из файла).
#42
by 1c_July
youalex, наверное глупый вопрос, но может поясните - если у автора не то, что я нафантазировала в , а действительно как-то сохранены гуиды без дефисов, то, если сделать, как Вы написали: "можно визуально эти позиции найти, взяв любую ссылку, и получить ее уид (Строка(Ссылка.УникальныйИдентификатор) и внутр. представление : ЗначениеВСтрокуВнутр(Ссылка)" позиции дефисов гарантировано будут одинаковые? по любой ссылке любого объекта, или только в пределах определенного типа объектов (справочника номенклатуры в данном случае)? это имеет объяснение или какую-то мат.часть нужно почитать?
#43
by 1c_July
блин, и правда глупый вопрос :) Как-то не приходилось задумываться, что разделение дефисами всегда одинаковое, если есть
#46
by Skylark
XMLСтрока 100% работает - позволяет получить УИД в виде строки через СОМ. Если так ошибка
#47
by 1c_July
спасибо. мда, читалось когда-то, но вылетело совсем из головы, уникальный да и ладно :)
#50
by 1c_July
йоу, получилось :) и так: соединение.XMLСтрока(соединение.справочники.склады.найтипокоду("О00000024")) и так: соединение.XMLСтрока(текстр.ссылкаНоменклатура) (здесь текстр из таблички-результата запроса) В обоих случаях то, что в аргументе - COMОбъект, а вызванная XMLСтрока через соединение нормально его "глотает" и возвращает строку-гуид. Для себя усвоила, что если надо что-то получить от COMОбъекта, полученного из соединения, надо и методы соответствующие вызывать "у соединения". Только все же, поскольку мы не имеем ссылки как таковой (она имеет смысл только в контексте текущей базы), функцию УникальныйИдентификатор использовать не получится, его можно потом уже в текущей базе по гуид создать, и по нему уже искать в ней ссылку. Спасибо!
#52
by 1c_July
вот видела это в справке (единственное что там есть, кроме NewObject), но как-то без примера не дошло сразу как использовать. Где-то читала бегло, что даже кусок кода можно написать и его в соединении выполнить (в смысле не каждый оператор через соединение), но вникать времени не было.
#53
by Skylark
> Только все же, поскольку мы не имеем ссылки как таковой (она имеет смысл только в контексте текущей базы), функцию УникальныйИдентификатор использовать не получится, его можно потом уже в текущей базе по гуид создать, и по нему уже искать в ней ссылку. Этот вот пассаж я не понял. Когда мы в базе-приемнике получили СтрУИД из базы источника в виде строки мы можем:
#55
by 1c_July
да, все так, а пассаж вкратце о том, что функцией УникальныйИдентификатор как в (просто через точку от ссылки) не воспользоваться, а надо делать именно как Вы написали в
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Уникальный идентификатор
- Уникальный идентификатор строк табличной части документа
- Можно ли изменить уникальный идентификатор справочника?
- Как получить уникальный идентификатор объекта или ссылку из строки ?
- Уникальный ключ строки табличной части - как получить?
- v7: Как получить уникальный идентификатор объекта в формате v8
- Окно и уникальный идентификатор
В этой группе 1С
- Быстрый запрос для получения списка возможных доп реквизитов
- Почему не происходит объединения в запросе
- ЗУП 3.1- данные о медицинском страховании
- СКД. Как объединить несколько строк?
- Максимальное количество колонок в запросе для клиент-серверного варианта работы
- ЗаполнитьЗначенияСвойств() в форме списка справочника (Управляемые формы)
- Создание единицы измерения при конвертации данных
- Ускорение PostgresSql, снижение нагрузки на диск (stats_temp_directory )
- условное оформление по условию скд
- Интеграция 1С и «Первой Формы»
- Свойства_ИспользоватьСвойства
- Оплата дополнительного отпуска в зуп 3.0
- Веб-сервис "не видит" пакет XDTO
- Где находятся типовые правила обмена в КА 2.2 для обмена с БП3
- 1С БГУ. Проблема при выборе КПС.
- настройка 1с 8.3 с iis https
- Сервер 1С через интернет
- v7: MySQL / 1c++ / ВыполнитьSQL_ИзТЗ - Передача числового параметра в запрос
- Открыть печатную форму (макет) из формы обработки.
- Расширение конфигурации