Группа: Пользователи
Сообщений: 7
Спасибо сказали: 0 раз
Рейтинг: 0
Здравствуйте уважаемые господа, я в 1С самоучка. У меня вопрос…такая ситуация – есть много шаблонов Word у каждом из них, ну к примеру, есть надпись «<НазваЮридичноїОсоби>», есть обыкновенная форма документа на которой на кнопку «Друк» наложен программный код по замене этой надписи в шаблоне на значение базы 1С:
//………………………………………….. ~НазваЮридичноїОсоби: //Мітка коду Диапазон = НовыйДокумент.Range(); Поиск = Диапазон.find; Поиск.ClearFormatting(); Поиск.Forward = Истина; продолжать = Поиск.Execute("<НазваЮридичноїОсоби>"); Если продолжать Тогда Диапазон.text = ЭтаФорма.ЭлементыФормы.Заклад.Значение.ЗакладСкорочено; Перейти ~НазваЮридичноїОсоби //Перехід до мітки КонецЕсли; //…………………………………………..
ВНИМАНИЕ ВОПРОС: возможно такое чтобы этот фрагмент кода использовался в общем модуле 1С и вызывался в модуле кнопки «Друк», так как писать постоянно этот код в каждом модуле не очень удобно? Конечно, я могу его скопировать в буфер и постоянно его вставлять, где он только нужен, но это не професионально как-то =)?
P.S. Версія 1С – 8.2, локальная машина не имеющая подключения к другим ПК. Заранее благодарен за любые ответы!
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2
1. Советую всётаки прочесть правила, ибо без них вы у нас долго не задержитесь продержитесь. 2. Если этот код перенести в общий модуль, то в каждом нужном документе прийдётся как минимум писать 1 строчку кода, которая будет вызывать эту процедуру.
Группа: Пользователи
Сообщений: 7
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(Vofka @ 06.09.11, 15:52)
1. Советую всётаки прочесть правила, ибо без них вы у нас долго не задержитесь продержитесь. 2. Если этот код перенести в общий модуль, то в каждом нужном документе прийдётся как минимум писать 1 строчку кода, которая будет вызывать эту процедуру.
Прочёл, про виделение кода, но после того как уже выложил, сорри =(. Ну это понятно что мне нужно всётаки обращатся как-то в общий модуль, но я показал лишь часть кода, у меня примерно получается около 20 таких значений, и то только по самом учреждении, а ещё + ЮРЛица + ФизЛица многовато будет, я хотел-бы к этим данным обращатся одной строкой а не пол-дюженою =)
Группа: Пользователи
Сообщений: 7
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(Fynjy @ 06.09.11, 16:10)
Вау велкий и могучий гоуту в коде
Я в курсе что много меток в коде не очень хорошо, но дело в том что в одном документе может быть несколько таких слов которые потребуют замены, без меток он лишь раз миняется, а с метками столько встречается сколько и меняется, правда видел примеры более умные, но они что-то меня не очень слушались =(
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2
По поводу меток я промолчал, т.к. не по этому поводу вопрос. vlad_1984_vlad, добавляете функцию в общий модуль с суффиксом Экспорт и вызываете её из нужных мест. Что именно у вас не получается?
Группа: Пользователи
Сообщений: 7
Спасибо сказали: 0 раз
Рейтинг: 0
Цитата(Vofka @ 06.09.11, 16:28)
По поводу меток я промолчал, т.к. не по этому поводу вопрос. vlad_1984_vlad, добавляете функцию в общий модуль с суффиксом Экспорт и вызываете её из нужных мест. Что именно у вас не получается?
Меня интересует как обращатся к процедурам общего модуля в котрых не производится некаких расчётов.
ооооо, за это огромное спасибо, попробую, а то знаю беду задумчывости ПК когда много меток, хотя и циклы не особо им уступают, проверю на быстродействие, спасибо.
vlad_1984_vlad, этот код основан уже на знании VBA. Да и пояснить неплохо бы, что метод Execute() может в зависимости от параметра заменять все вхождения строки поиска.
Диапазон = НовыйДокумент.Range(); Пока Истина цикл Поиск = Диапазон.find; Поиск.ClearFormatting(); Поиск.Forward = Истина; Если НЕ Поиск.Execute("<НазваЮридичноїОсоби>") Тогда Прервать; КонецЕсли; // Вот здесь условие прерывания цикла ... КонецЦикла;
Причина в следующем: если этот код менять, то можно забыть заменить текст во втором вхождении и получить головную боль при отладке
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!