Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

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

Как связать документы разных типов без изменения конфигурации?
Я
   slafor
 
22.07.20 - 12:11
1С БП 3.0.

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

В то же время надо, чтобы впоследствии можно было выяснить, есть ли Перемещение на основании Реализации. И лучше выяснить это с помощью запроса.

Сначала я попробовал создавать Перемещения с особым префиксом номера + префикс реализации + последние цифры номера реализации, и устанавливал связь по номеру документа:

ВЫБРАТЬ
        РеализацияТоваровУслугТовары.Ссылка,
    РеализацияТоваровУслугТовары.Номенклатура,
    РеализацияТоваровУслугТовары.Количество,
    РеализацияТоваровУслугТовары.Цена,
    РеализацияТоваровУслугТовары.Сумма,
    ПеремещениеТоваров.Ссылка КАК Перемещение
ИЗ
    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров КАК ПеремещениеТоваров
        ПО (РеализацияТоваровУслугТовары.Ссылка.Номер = &ПрефиксПеремещения + ПОДСТРОКА(ПеремещениеТоваров.Номер, 1, 5) + ПОДСТРОКА(ПеремещениеТоваров.Номер, 9, 3))
            

Но мне не удалось добиться полной уникальности кодов новых документов перемещения при их создании (строка создания нового номера: Перемещение.Номер = "ПР-" + Сред(Реализация.Номер, 1, 5) + Сред(Реализация.Номер, 9, 3); выдавала уже существующий код. Менять длину кода (11 символов) я тоже не могу, потому что нельзя менять типовую конфигурацию.

Есть идея воспользоваться УникальнымИдентификатором, но я прочитал, что его нельзя использовать в запросе. Можно самому создавать свой идентификатор, скажем, НомерРеализации + ДатаРеализации, сувать его в Перемещение в конец Комментария (в начало нежелательно - там уже есть свое начало), но тут другая проблема - поскольку комментарий - это поле неограниченной длины, в запросе для использования в соединениях таблиц я могу использовать его только в выражении ВЫРАЗИТЬ(Комментарий КАК СТРОКА(КоличествоСимволов)), а мне нужно будет получить именно последние символы, но как узнать длину строки неограниченной длины? Сделать это нужно только в запросе, при создании нового перемещения я просто-напросто добавлю мой идентификатор к уже имеющемуся комментарию.
   polosov
 
1 - 22.07.20 - 12:12
(0) Расширение не хочешь?
   slafor
 
2 - 22.07.20 - 12:13
(1) Нежелательно.
   Strogg
 
3 - 22.07.20 - 12:14
Есть же механизм допрекаизитов. Чем он не подходит?
   slafor
 
4 - 22.07.20 - 12:41
(3) Идея хорошая, для многих вещей подойдет, жаль, что раньше не пользовался...

Но для моей задачи - не подходит. В тип значения характеристик ПВХ ДополнительныеРеквизитыИСведения документ РеализацияТоваровУслуг не входит. Да и вообще документы туда не входят, только справочники. А менять типовую нельзя.
   Garykom
 
5 - 22.07.20 - 13:01
(3) Дополнительные сведения только у документов
   Garykom
 
6 - 22.07.20 - 13:01
(4) Строковое дополнительное сведение у перемещения и туда пиши уид реализации
   slafor
 
7 - 22.07.20 - 14:52
(6)
Да, там все так "перевывернуто"...

То есть моя задача - это при создании перемещения на основании реализации создать запись в регистре сведений ДополнительныеСведения, где объектом будет Перемещение, значением - УИД Реализации (кстати, а нельзя ли писать не строковый УИД, а прямую ссылку на Реализацию?), а вот что будет Свойством?..
   slafor
 
8 - 22.07.20 - 15:53
Даже так, тогда бы я поставил вопрос по-другому.

Можно ли средствами стандартной типовой БП 3.0 решить вопрос так, чтобы, не меняя конфигурации, связать ссылки двух документов разных видов, если это не предусмотрено специальными реквизитами?
   DJ Anthon
 
9 - 22.07.20 - 16:00
но в допреквизиты можно засунуть номер документа и дату, не?
   RomanYS
 
10 - 22.07.20 - 16:02
(8) Если эта связь будет писаться и читаться кодом (например внешними обработками), то решение предложено в (6).
   slafor
 
11 - 22.07.20 - 16:04
(9) В принципе, ничего не мешает.
(10) Тут проблема с обращением к УИД из запроса.

Просто было бы приколько, если был бы РС где Измерение - ДокументСсылка, и Значение - ДокументСсылка ))

Список тем форума
Рекламное место пустует  Рекламное место пустует
Компьютер — устройство разработанное для ускорения и автоматизации человеческих ошибок.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.