Простой способ открыть документ по ссылке из другой базы

25.06.13

Задачи пользователя - Анализ учета

Рассмотрим механизм открытия документа по навигационной ссылке из одной информационной базы в другой в один клик

Скачать файлы

Наименование Файл Версия Размер
ОткрытьСсылкуВДругойБазе.exe
.exe 294,90Kb
39
.exe 294,90Kb 39 Скачать

      Нередко в процессе работы с информационной базой, данные в которую были загружены из другой информационной базы возникает необходимость быстро перейти к документу-источнику чтобы посмотреть, корректно ли прошел обмен и/или внести изменения в исходный документ, если в нем обнаружилась ошибка. К примеру, бухгалтер, работая в программе «1С: Бухгалтерия 8», имеющую настроенный обмен с «1С: Управление торговлей 8», обнаруживает в платежке незаполненной статью ДДС. Для исправления ошибки ей необходимо найти эту платежку в базе-источнике -  «1С: Управление торговлей 8», открыть ее и заполнить данный реквизит, чтобы при повторной синхронизации все встало на свои места. Когда подобных ошибок много, работа по поиску каждого такого документа может занять кучу времени и испортить немало нервов бухгалтеру, а заодно ИТ-службе предприятия :)

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

Что мы имеем на входе.

Представим, что у нас есть информационная база для ведения бюджетирования, например, «1С:ВДГБ:УПРАВЛЕНЧЕСКАЯ ОТЧЕТНОСТЬ от бухгалтера», фактические данные в которую загружаются из торговой программы на базе «1С:Управление небольшой фирмой».

Мы храним фактические данные в документе «Хозяйственная операция» в разрезе регистраторов, для чего в каждый «Вид операции» добавили вид аналитики - «Документ».

 


В этой аналитике мы в строковом виде храним навигационные ссылки на документы из базы-источника. Сами документы в базу-приемник в данном случае не переносятся.

 

Задача.

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

Решение.

Для решения задачи мы воспользуемся возможностями, которые нам предоставляет управляемое приложение «1С:8.2» по работе с навигационными ссылками и свободно распространяемую программу для автоматизации выполнения задач в Windows - AutoIt .


1. Скачиваем и устанавливаем программу AutoIt с сайта http://www.autoitscript.com/site/autoit/downloads/

Эта программа понадобится только нам и только на этапе разработки, каждому бухгалтеру на компьютер ставить ее вовсе не обязательно!


2. Запускаем Script Editor и создаем файл ОткрытьСсылкуВДругойБазе.au3 со следующим содержимым:


if WinActivate($CmdLine[1], "") <> 0 Then

ClipPut($CmdLine[2])

Send("+{F11}")

Send("{Enter}")

EndIf

 


3. Нажимаем Ctrl+F7 (либо Tools -> Compile) и получаем исполняемый файл ОткрытьСсылкуВДругойБазе.exe, который нам останется только поместить в каталог, доступный для пользователя информационной базы. Самые ленивые могут сразу скачать скомпилированный файл, приложенный к данной статье. Если сильно чешутся руки, чтобы в дальнейшем не таскаться с этим файлом при работе пользователей, можете сохранить этот файл прямо в информационной базе, добавив туда константу с типом «Хранилище значения».

 

4. Открываем конфигуратор информационной базы «1С:ВДГБ:УПРАВЛЕНЧЕСКАЯ ОТЧЕТНОСТЬ от бухгалтера» и добавляем в справочник «Пользователи» два строковых реквизита длиной по 512 символов: «КаталогФайлаОткрытияДокумента» и «НазваниеОкнаИБИсточника». 

 

 

Таким образом, мы сможем указать для каждого пользователя, на какое окно должна переключаться программа для открытия документа в базе-источнике, ведь зачастую название окна содержит в себе имя пользователя, и таким образом, оно, это название, является уникальным.

 

5. Открываем форму документа, где хранятся ссылки, которые нам нужно открыть (данном примере, это документ «Хозяйственная операция») и добавляем туда команду «Открыть документ» и соответствующую ей кнопку. 

6. В модуле формы для обработчика команды размещаем следующий код:


&НаКлиенте
Процедура ОткрытьДокумент(Команда)
    Ссылочка = "";
    Если Элементы.Операции.ТекущиеДанные.ВидАналитики1.Наименование = "Документ" Тогда
        Ссылочка = Элементы.Операции.ТекущиеДанные.Аналитика1.Наименование;
    ИначеЕсли Элементы.Операции.ТекущиеДанные.ВидАналитики2.Наименование = "Документ" Тогда
        Ссылочка = Элементы.Операции.ТекущиеДанные.Аналитика2.Наименование;
    ИначеЕсли Элементы.Операции.ТекущиеДанные.ВидАналитики3.Наименование = "Документ" Тогда
        Ссылочка = Элементы.Операции.ТекущиеДанные.Аналитика3.Наименование;
    ИначеЕсли Элементы.Операции.ТекущиеДанные.ВидАналитики4.Наименование = "Документ" Тогда
        Ссылочка = Элементы.Операции.ТекущиеДанные.Аналитика4.Наименование;
    ИначеЕсли Элементы.Операции.ТекущиеДанные.ВидАналитики5.Наименование = "Документ" Тогда
        Ссылочка = Элементы.Операции.ТекущиеДанные.Аналитика5.Наименование;
    ИначеЕсли Элементы.Операции.ТекущиеДанные.ВидАналитики6.Наименование = "Документ" Тогда
        Ссылочка = Элементы.Операции.ТекущиеДанные.Аналитика6.Наименование;
    КонецЕсли;      
               

    Если ЗначениеЗаполнено(Ссылочка) Тогда
        ПерейтиКДокументу(Ссылочка);
    КонецЕсли;
КонецПроцедуры

 

&НаСервере
Процедура ПерейтиКДокументу(Ссылочка);
    //Если в названии окна присутствуют кавычки, их нужно заменить на двойные, чтобы AutoIt воспринял название как единый параметр
    //Если в названии окна присутствуют пробелы, его необходимо оградить двойными ковычками для той же цели
    НазваниеОкна = СтрЗаменить(ПараметрыСеанса.ТекущийПользователь.НазваниеОкнаИБИсточника, """", """""");               

    ЗапуститьПриложение(ПараметрыСеанса.ТекущийПользователь.КаталогФайлаОткрытияДокумента 
                        + "ОткрытьСсылкуВДругойБазе.exe "
                        + """" + НазваниеОкна + """ " + Ссылочка);               

КонецПроцедуры

 

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

 

7. Открываем информационную базу-источник в режиме пользователя, и запускаем утилиту AutoIt Window Info.

 

8. Нажимаем Ctrl+Alt+F (либо Options -> Freeze), щелкаем по окну информационной базы и копируем в буфер обмена появившийся в утилите заголовок окна.

 

9. Открываем информационную базу-приемник в режиме пользователя и заполняем наши свежедобавленные реквизиты в справочнике «Пользователи». 

10. Наслаждаемся полученным результатом!


См. также

SALE! 20%

Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2. Переносятся документы, справочная информация и остатки

Обмен между базами 1C Платформа 1С v8.3 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) в продаже с 2015 года, постоянно работаем над их развитием | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

45650 36520 руб.

04.08.2015    159699    364    267    

345

SALE! 15%

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 22572 руб.

12.06.2017    134948    721    291    

388

SALE! 20%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0. Переносятся документы, начальные остатки и справочники

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | В продаже с 2019г. | Воспользовались более 176 предприятий! | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой, обращайтесь!

34650 27720 руб.

15.04.2019    68425    179    138    

111

SALE! 20%

Перенос данных из ERP 2 / КА 2 в ЗУП 3. Переносятся остатки, документы и справочники

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Воспользовались более 79 предприятий! | Предлагаем приобрести готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | В продаже с 2020г. | Оперативно обновляем правила до актуальных релизов 1С | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

43450 34760 руб.

03.12.2020    34172    80    58    

78

SALE! 10%

Перенос данных из УТ 10.3 в УТ 11.5. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.87.x) и УТ 11.5 (11.5.16.x).

28000 25200 руб.

23.07.2020    46302    196    64    

158

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9212    9    8    

10

SALE! 10%

Перенос данных из УПП 1.3 в БП 3.0. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.223.x) и БП 3.0 (3.0.149.x). Правила подходят для версии ПРОФ и КОРП.

28000 25200 руб.

15.12.2021    20256    132    38    

90

SALE! 10%

Перенос данных из БП 3.0 в УТ 11 / КА 2 / ERP 2. Переносятся начальные остатки, документы и справочники

Обмен между базами 1C Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

В продаже с 2014г. | Воспользовались более 122 предприятий! | Перенос данных из БП 3.0 в УТ 11 | из БП 3.0 в КА 2 | из БП 3.0 в ERP | Сэкономьте свое время - используйте готовое решение для перехода! | Постоянно работаем над развитием переноса данных | Обновляем на новые релизы 1С | Есть фильтр выгрузки по организациям | Переносятся начальные остатки на выбранную дату, документы за период времени и вся возможная справочная информация | Перенос сделан на технологии КД 2 (правила конвертации данных)

50722 45650 руб.

31.10.2014    231425    124    327    

296
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Mir-mup 26.06.13 12:17 Сейчас в теме
а есть возможность сделать так, чтобы с рабочего стола по ссылке открывался нужный документ в открытой базе. (ярлык на рабочем столе винды, система в режиме предприятия открыта, при нажатии на ярлык открывается документ)?
2. kraynev-navi 647 26.06.13 18:30 Сейчас в теме
Если правильно понял задачу "Заранее известный документ открыть в определенной базе", то возможно. Это уже описано по сути. Компилируется файлик со строчками публикации в test.exe
if WinActivate($CmdLine[1], "") <> 0 Then
ClipPut($CmdLine[2])
Send("+{F11}")
Send("{Enter}")
EndIf

Делаем ярлык вида "test.exe e1c://server/servername/dbname#e1cib/navigationpoint/ДокументыИФайлы/Справочник.ВнутренниеДокументы.Команда.СписокВнутреннихДокументов" и все должно работать. Но это не так интересно. Интереснее, когда 1С не открыта ))

Тогда пишется запускалка (основа идеи)
Local $path_to_1c=@ProgramFilesDir & "\1cv82\common\1cestart.exe ENTERPRISE /Sservername\bdname"
Run($path_to_1c)

далее отслеживаем появление запущенного приложения и выполняем действия как в статье автора.
3. Mir-mup 29.06.13 16:54 Сейчас в теме
(2) kraynev-navi, не...
Делаем ярлык вида "test.exe e1c://server/servername/dbname#e1cib/navigationpoint/ДокументыИФайлы/Справочник.ВнутренниеДокументы.Команда.СписокВнутреннихДокументов" как ярлык запускаться будет?
можно где нибудь в коде добавить (открыть справочник контрагенты "Иванов")?

if WinActivate($CmdLine[1], "") <> 0 Then
ClipPut($CmdLine[2])
Send("+{F11}")
Send("{Enter}")
EndIf
4. kraynev-navi 647 01.07.13 09:30 Сейчас в теме
(3)
Про справочник контрагента Иванова - переходим в контрагенты на карточку Иванова, получаем его ссылку (пример для Документооборота) "e1c://server/servername/basename#e1cib/data/Справочник.Корреспонденты?ref=b547001517611b2111e2c69c3d18c65a". Добавляем его в ярлык вместо "e1c://server/servername/dbname#e1cib/navigationpoint/ДокументыИФайлы/Справочник.ВнутренниеДокументы.Команда.СписокВнутреннихДокументов". Все, теперь ярлык будет открывать Иванова.

Вопрос про запуск ярлыка не понял. Автор публикации видео сделал - вот так скрипт и должен работать, активировать окно, открывать "подокно", делать вставку и "нажимать" на кнопку перейти.
5. Mir-mup 02.07.13 12:50 Сейчас в теме
(4) kraynev-navi, спасибо уже разобрался. AutoIt v3 справка на русском языке в файле, вдруг кому пригодится,мне очень пригодилась.
Прикрепленные файлы:
AutoIt3_2_5_4_ru.chm
7. M_Volkov 5 27.05.20 13:24 Сейчас в теме
(5)
AutoIt v3 справка на русском языке в файле, вдруг кому пригодится
Мне бы пригодилась, но там только содержание, а самих текстов нет!?
Например, установил AutoIt, но не понял:
Запускаем Script Editor и создаем файл ОткрытьСсылкуВДругойБазе.au3 со следующим содержимым...
как?
8. M_Volkov 5 27.05.20 15:34 Сейчас в теме
(7)
как?
Отбой, файл ОткрытьСсылкуВДругойБазе.exe вроде сделал. Куда его поместить, если все пользователи работают в базах на терминале?
9. amatoravg 57 27.05.20 19:06 Сейчас в теме
(8)
В какую-нибудь папку на терминальном сервере, доступную всем, или в общую сетевую папку.
10. M_Volkov 5 27.05.20 20:00 Сейчас в теме
(9)
В какую-нибудь папку на терминальном сервере...
Так и сделал, папку указал вместо ПараметрыСеанса.ТекущийПользователь.КаталогФайлаОткрытияДокумента в
    ЗапуститьПриложение(ПараметрыСеанса.ТекущийПользователь.КаталогФайлаОткрытияДокумента 
                        + "ОткрытьСсылкуВДругойБазе.exe "
                        + """" + НазваниеОкна + """ " + Ссылочка);
НазваниеОкна так же задал текстом, Ссылочка сформирована по алгоритму:
НавигационныйГУИД = Сред(ГУИД,20,4)+Сред(ГУИД,25,12)+Сред(ГУИД,15,4)+Сред(ГУИД,10,4) + Сред(ГУИД,1,8);
URL = "e1cib/data/" + ТипВБазеИсточника + "?ref=" + НавигационныйГУИД;
Выполняю ЗапуститьПриложение() - ничего не происходит?
11. M_Volkov 5 15.09.20 15:54 Сейчас в теме
(10)
Выполняю ЗапуститьПриложение() - ничего не происходит?
А ОткрытьСсылкуВДругойБазе.exe имеет ли коды возврата? Например, не нашла окна с именем НазваниеОкна - база источника не открыта под текущем пользователем.
6. dyak84 23.07.13 18:52 Сейчас в теме
Спасибо автору очень интересная идея. На выходных попробую реализовать а то нужно нечто похожее зделать а идей никаких а тут ваша публикация, просто бальзам на душу. Так держать. Заслуженое 5 +++++++++++
TVA_11; amatoravg; +2 Ответить
12. TVA_11 09.11.22 16:40 Сейчас в теме
13. TVA_11 10.11.22 07:53 Сейчас в теме
14. SuperEmboser 12 12.04.23 11:31 Сейчас в теме
а есть еще похожая задача, не могу найти примеров в инет..
Нужно из одной базы интерактивно открыть другую, там чтобы открылась форма выбора , в этой форме кликнуть на конкретном элементе выбрать и в исходную вернуть гуид выбранного элемента, такое возможно?
Оставьте свое сообщение