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

25.06.13

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ОткрытьСсылкуВДругойБазе.exe
.exe 294,90Kb
39
39 Скачать (1 SM) Купить за 1 850 руб.

      Нередко в процессе работы с информационной базой, данные в которую были загружены из другой информационной базы возникает необходимость быстро перейти к документу-источнику чтобы посмотреть, корректно ли прошел обмен и/или внести изменения в исходный документ, если в нем обнаружилась ошибка. К примеру, бухгалтер, работая в программе «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! 10%

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

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

50722 45650 руб.

04.08.2015    165275    384    276    

370

SALE! 10%

Перенос данных 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

26280 руб.

12.06.2017    140259    783    295    

410

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

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

84000 руб.

19.08.2020    24478    23    1    

25

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

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

28000 руб.

15.12.2021    23209    160    48    

118

SALE! 10%

Перенос данных 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 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

50722 45650 руб.

15.04.2019    71584    180    149    

121

SALE! 10%

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

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Предлагаем качественное и проверенное временем решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам. При выходе новых релизов конфигураций 1C оперативно выпускаем обновление переноса данных.

50722 45650 руб.

24.04.2015    194247    149    242    

279

SALE! 10%

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

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

50722 45650 руб.

31.10.2014    236124    99    334    

305

SALE! 10%

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

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

48278 43450 руб.

03.12.2020    36079    90    63    

87
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Mir-mup 26.06.13 12:17 Сейчас в теме
а есть возможность сделать так, чтобы с рабочего стола по ссылке открывался нужный документ в открытой базе. (ярлык на рабочем столе винды, система в режиме предприятия открыта, при нажатии на ярлык открывается документ)?
2. kraynev-navi 678 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 678 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 13 12.04.23 11:31 Сейчас в теме
а есть еще похожая задача, не могу найти примеров в инет..
Нужно из одной базы интерактивно открыть другую, там чтобы открылась форма выбора , в этой форме кликнуть на конкретном элементе выбрать и в исходную вернуть гуид выбранного элемента, такое возможно?
Оставьте свое сообщение