Ошибка при вызове метода контекста rows

June 15 2011, 16:46

Сообщение об ошибке:
Ошибка при вызове метода контекста Rows

Подробно:
Ошибка при вызове метода контекста (Rows)
по причине:
Произошла исключительная ситуация (0x80020005)

Причина:
В качестве номера последней строки диапазона передано число, отформатированное 1С-кой (с дурацким пробелом в качестве разделителя разрядов)

Решение:
Отформатировать число, убрав разделители разрядов. Решение, впрочем, очевидное. Найти причину было сложнее.))

   marshalbratsk

07.12.16 — 10:21

Как удалить диапазон строк Excel?

Пытаюсь так — не работает

Для i=0 по КоличествоСтрок-1 Цикл

        a=ТЗ[i].Индекс1+2; //Получаю индекс начала диапазона (лежит в таблице значений)

        b=ТЗ[i+1].Индекс1-1; //получаю индекс конца диапазона (лежит в таблице значений)

        sheet.Rows(«A»+a+»:»+»A»+b).Delete();

КонецЦикла;

(«A»+a+»:»+»A»+b) в отладчике показывает как (A15:A15000) т.е. правильно

   marshalbratsk

1 — 07.12.16 — 10:22

Ошибка при вызове метода контекста (Rows)

sheet.Rows(«A»+a+»:»+»A»+b).Delete();

   marshalbratsk

2 — 07.12.16 — 10:25

с range вместо rows тоже не работает

   Vladal

3 — 07.12.16 — 10:51

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

   Vladal

4 — 07.12.16 — 10:52

И удалить именно строки, а не значения этих строк?

Раньше получалось так:

sheet.Rows(«300:10000»).Delete

А может, Delete без скобок надо? Попробуй свой пример без скобок.

   Vladal

5 — 07.12.16 — 10:57

Мне макрос выдал такое:

rows(«НачальнаяСтрока:КонечнаяСтрока»).select

selection.delete shift:=xlUp

   Vladal

6 — 07.12.16 — 10:58

   marshalbratsk

7 — 07.12.16 — 11:11

Range(«A17102:A17201»).Select

    Selection.EntireRow.Delete

Вот, что выдал VBA

Без скобок нельзя

{Обработка.bzfВыгрузкаМеждународнойОтчетности.Форма.Форма.Форма(3349,25)}: Неопознанный оператор

        sheet.range(ab).Select<<?>>; (Проверка: Толстый клиент (обычное приложение))

{Обработка.bzfВыгрузкаМеждународнойОтчетности.Форма.Форма.Форма(3350,35)}: Неопознанный оператор

        sheet.selection.EntireRow.delete<<?>>; (Проверка: Толстый клиент (обычное приложение))

Если вбивать значения напрямую, без переменных, то работает, но мне надо через переменные

        a=ТЗ[КоличествоСтрок-2-c].Индекс1+2;

        b=ТЗ[КоличествоСтрок-c-1].Индекс1-1;

        ab=Строка(«A»+a+»:»+»A»+b);

        Sheet.Range(ab).Select();

        Sheet.Selection.EntireRow.Delete();

Так пытаюсь — не работает

Произошла исключительная ситуация (0x800a03ec)

   marshalbratsk

8 — 07.12.16 — 11:16

   marshalbratsk

9 — 07.12.16 — 11:21

ФЫШВОФДЫВРОФЫРВЛОЫФВОЫРФВЛЫв

ФОРМАТ, МАТЬ ЕГО, ЧИСЛА

писал с пробелами

http://hkar.ru/MvEC

Сначала не обратил внимания, потом, когда (8) отправил — увидел

   marshalbratsk

10 — 07.12.16 — 11:23

Всем спасибо, всего хорошего

   Vladal

11 — 07.12.16 — 11:28

Да. Точно. Формат числа без разделителей надо использовать.

В семерке это было естественным, а восьмерка преобразует число в строку с разделителем, если не указать иначе.

   marshalbratsk

12 — 07.12.16 — 11:30

А ещё через Selection не хочет удалять, ругается, писал напрямую

Sheet.Range(ab).Delete();

  

marshalbratsk

13 — 07.12.16 — 11:53

(12) И так он тоже не удалял

Короче, чтобы удалить диапазон строк нужно писать следующее

Sheet.Range(«Диапазон строк»).EntireRow.Delete();

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Sargez

Дата регистрации: 21.10.2010
Сообщений: 247

«Здравствуйте!<br><br>Никак не могу понять в чем причина. ругается вот на эту строчку:<br>Лист1.Rows(ТекСтрочка+»:»+ТекСтрочка).Select();<br><br>ошибка:<br><br><br>{Форма.Форма.Форма(212)}: Ошибка при вызове метода контекста (Select)<br> Лист1.Rows(ТекСтрочка+»:»+ТекСтрочка).Select();<br>по причине:<br>Произошла исключительная ситуация (Microsoft Office Excel): Метод Select из класса Range завершен неверно<br><br>В чем проблема, подскажите, плиз?<br><br> <br>тот же самый код на платформе 8.1 работает корректно не ругается….»

Thorvardr

Дата регистрации: 25.02.2005
Сообщений: 3082

Лист1.Activate перед этим

Sargez

Дата регистрации: 21.10.2010
Сообщений: 247

хм….действительно помогло спасибо! интересно почему на 8.1 без активации все с рабатвлово….

Thorvardr

Дата регистрации: 25.02.2005
Сообщений: 3082

«Понятия не имею, вы как Лист1 связывали с листом книги Excel?<br>Вот проверил по быстрому, все работает без проблем:<br>Попытка<br> ExcelServer = СоздатьОбъект(«Excel.Application»);<br> РабочаяКнига=ExcelServer.WorkBooks.Add();<br> РабочийЛист=РабочаяКнига.Sheets(«Лист1″);<br> РабочийЛист.Rows(10).Select();<br> ExcelServer.Visible=-1;<br> ExcelServer=0;<br>Исключение<br> ExcelServer=0;<br> Сообщить(ОписаниеОшибки());<br>КонецПопытки;<br><br>P.S. У вас еще в коде ошибка, скорее всего. Полагаю, что ТекСтрочка у вас наверняка число и когда вы делаете:<br>ТекСтрочка+»:»+ТекСтрочка получается непонятно что. Это неявное преобразование типов, так делать нельзя, надо так:<br>»»»»+ТекСтрочка+»:»+ТекСтрочка<br>или как я привык:<br>Строка(ТекСтрочка)+»:»+Строка(ТекСтрочка)<br>а вообще, в Rows(…) можно одно число подавать, как в моем примере тут»

Показывать по
10
20
40
сообщений

Читают тему:

Делаю выгрузку из datagridview

введите сюда описание изображения

в документ Word

введите сюда описание изображения

с помощью этого кода:

string num = null;
int y = 0;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку.
    if (num == null)
    {
        wordDocument.Range(tbl.Cell(i + 2, 2).Range.Start, tbl.Cell(i + 2, 2).Range.End).Text = dataGridView1.Rows[i].Cells["Column2"].Value.ToString();
        num = dataGridView1.Rows[i].Cells["Column2"].Value.ToString();
    }
    else
    {
        if (num == dataGridView1.Rows[i].Cells["Column2"].Value.ToString())
        {
            y++;
            //тут он не может найди запрашиваемый номер семейства
            wordDocument.Range(tbl.Cell(i + 2 - y, 1).Range.Start, tbl.Cell(i + 2, 1).Range.End).Cells.Merge();
            //объединение второй колонки
            wordDocument.Range(tbl.Cell(i + 2 - y, 2).Range.Start, tbl.Cell(i + 2, 2).Range.End).Cells.Merge();
        }
        else
        {//если нет, то просто заполняем данными
            wordDocument.Range(tbl.Cell(i + 2, 1).Range.Start, tbl.Cell(i + 2, 1).Range.End).Text = dataGridView1.Rows[i].Cells["Column1"].Value.ToString();
            wordDocument.Range(tbl.Cell(i + 2, 2).Range.Start, tbl.Cell(i + 2, 2).Range.End).Text = dataGridView1.Rows[i].Cells["Column2"].Value.ToString();
            num = dataGridView1.Rows[i].Cells["Column2"].Value.ToString();
            y = 0;
        }
    }
    //заполняем остальные колонки данными
    wordDocument.Range(tbl.Cell(i + 2, 3).Range.Start, tbl.Cell(i + 2, 3).Range.End).Text = dataGridView1.Rows[i].Cells["Column3"].Value.ToString();
    wordDocument.Range(tbl.Cell(i + 2, 4).Range.Start, tbl.Cell(i + 2, 4).Range.End).Text = dataGridView1.Rows[i].Cells["Column4"].Value.ToString();
    wordDocument.Range(tbl.Cell(i + 2, 5).Range.Start, tbl.Cell(i + 2, 5).Range.End).Text = stepennn.ShowSubText(dataGridView1.Rows[i].Cells["Column5"].Value.ToString(), dataGridView1.Rows[i].Cells["Column6"].Value.ToString());
    wordDocument.Range(tbl.Cell(i + 2, 6).Range.Start, tbl.Cell(i + 2, 6).Range.End).Text = dataGridView1.Rows[i].Cells["Column6"].Value.ToString();
    wordDocument.Range(tbl.Cell(i + 2, 7).Range.Start, tbl.Cell(i + 2, 7).Range.End).Text = dataGridView1.Rows[i].Cells["Column7"].Value.ToString();
}

Делаю объединение строк в первой и во второй колонке. Если убрать объединение ячеек в первой колонке, то всё работает как надо. Во второй колонке объединение происходит нормально, а на первой происходит ошибка — Запрашиваемый номер семейства не существует. По логике всё должно работать, но чё то не могу додумать что не так

На третьем цикле происходит ошибка

Маленький пример

private void button1_Click(object sender, EventArgs e)
{
    Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
    var doc =word.Documents.Open( @"C:1.docx", ReadOnly: true);
    word.Visible = true; 
    object missing = Type.Missing;
    Microsoft.Office.Interop.Word.Table tbl = word.ActiveDocument.Tables[1];
    tbl.Borders.Enable = 1;

    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку
    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку
    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку
    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку
    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку
    doc.Range(tbl.Cell(2, 2).Range.Start, tbl.Cell(4, 2).Range.End).Cells.Merge();
    doc.Range(tbl.Cell(2, 3).Range.Start, tbl.Cell(3, 3).Range.End).Cells.Merge();
}

Заголовок таблицы тот же. В итоге результат тот же, при объединении ячеек в соседней колонке так же пишет — запрашиваемый номер семейства не существует.

Почему так, не пойму

  

Falex

16.11.09 — 21:07

Платформа пишет такую ошибку:

Ошибка при вызове метода контекста (Item): Произошла исключительная ситуация (Microsoft Word): Запрашиваемый номер семейства не существует.

       Макет=ПолучитьМакет(«Макет»);

       MSWord = Макет.Получить();

       Попытка

           Шаблон = MSWord.Application.Documents(1);

           Шаблон.Activate();

Таблица = Шаблон.Tables.Item(1);

Эта обработка на моем компьютере отрабатывает. По отладчику посмотрел на другом компьютере (где не работает): количество таблиц равно нулю. На всякий случай нарисовал прямо на данном компьютере еще одну таблицу в ActiveDocument. И все равно количество таблицу в документе равно нулю.

Что может быть не так?

Falex

1 — 16.11.09 — 21:07

вылетает на этом месте:

Таблица = Шаблон.Tables.Item(1);

dk

2 — 16.11.09 — 21:15

видимо шаблон переаполняется

Лефмихалыч

3 — 16.11.09 — 21:23

а может нет там в этой коллекции элементов? Посмотри Шаблон.Tables.Count

Falex

4 — 16.11.09 — 21:24

всмысле шаблон перезаполняется?

так я и смотрю Шаблон.Tables.Count()

Он равен нулю.

Тьма

5 — 16.11.09 — 21:27

MSWord.Application.Documents().Count() — сколько?

Falex

6 — 16.11.09 — 21:27

причем я сделал еще так: взял скопировал свой шаблон в doc файл. скопировал его на тот компьютер. загрузил в activedocument. та же ерунда.

Falex

7 — 16.11.09 — 21:29

MSWord.Application.Documents().Count() = 1

Falex

8 — 16.11.09 — 21:30

причем у меня что закомментировано тоже не проходит, а проходит иначе

           //Шаблон.Fields.item(1).Result.Text = Формат(Дата, «ДЛФ=D»)+» г.»;

           Замена = Шаблон.Content.Find;

           Замена.Execute(«[Дата]», Ложь, Истина, Ложь, , , Истина, , Ложь, Формат(Дата, «ДЛФ=D»)+» г.»);

dk

9 — 16.11.09 — 21:35

Шаблон = MSWord.Application.Documents(1);

Шаблон.Tables.Count()

что говорит?

Falex

10 — 16.11.09 — 21:44

говорит 0

Falex

11 — 16.11.09 — 21:45

а у меня говорит 2 (сколько и есть на самом деле)

Falex

12 — 16.11.09 — 21:46

ЗЫ: базы одинаковые, но тестируются на разных машинах.

dk

13 — 16.11.09 — 21:52

версии МС офиса одинаковые?

Falex

14 — 16.11.09 — 21:53

и там и там 2007. СОхраняю для надежности в 2003.

dk

15 — 16.11.09 — 21:57

значит не тот макет

Falex

16 — 16.11.09 — 21:58

всмысле не тот макет?

Falex

17 — 16.11.09 — 22:00

попробовал иначе: прямо на том компьютере в конфигураторе создал макет (activedocument). Нарисовал 2 таблицы.Проверил количество таблиц при выводе: оно опять равно нулю.

Тьма

18 — 16.11.09 — 22:08

Ковычки

19 — 16.11.09 — 22:09

визибле=-1

Ковычки

20 — 16.11.09 — 22:14

+ выкинуть попытку

Falex

21 — 16.11.09 — 22:19

это что за ссылка?

Что попробовать?

Шаблон.Visible = -1;???

Тьма

22 — 16.11.09 — 22:21

Falex

23 — 16.11.09 — 22:28

блин.

Система в настоящее время не доступна. Пожалуйста попытайтесь позже или свяжитесь с службой поддержки, если Вам необходима срочная помощь.http://support.microsoft.com/contactus/?ws=support

Falex

24 — 16.11.09 — 22:37

как всегда майкрософт подводит ((

  

Falex

25 — 17.11.09 — 16:18

не работает (

Материал из AutoPark

Перейти к: навигация,
поиск

Содержание

  • 1 Функционирование
    • 1.1 Именование переменных документа
    • 1.2 Многострочные части
    • 1.3 Изображения
  • 2 Режимы работы с Word
    • 2.1 Обычный режим
    • 2.2 Режим разработки шаблона
      • 2.2.1 Особенности
    • 2.3 Публикация шаблона
  • 3 Как заказать новый Word-отчёт
  • 4 Создание пользовательского шаблона
  • 5 Некоторые особенности использования MS Word
  • 6 Известные проблемы
    • 6.1 При выгрузке в Word возникает ошибка «Запрашиваемый номер семейства не существует»
    • 6.2 При выгрузке в Word возникает ошибка «Приложению Word не удалось запустить конвертер mswrd632»
    • 6.3 При выгрузке в Word появляется ошибка «Вызов был отклонен»
    • 6.4 При выгрузке в Word появляется ошибка «Неверно указана единица измерения»
  • 7 Процедура настройки шаблона

Функционирование

MS Word — текстовый процессор. Обычно входит в состав пакета офисных программ MS Office. Система АвтоПарк поддерживает формирование отчетных форм с использованием MS Word.
Обратите внимание: версия MS Word, пригодная для использования в Системе АвтоПарк — не ниже MS Word 2000.

Данные в Word АвтоПарк передаёт путём создания в документе набора переменных и присваивания им значений. Для управления отображением данных в шаблоне документа используются поля. Более подробно о том, что такое поля и переменные документа, смотрите в справочной системе Word. Начальные сведения содержатся в статьях «О полях», «Коды полей: DOCVARIABLE».

Разрабатываемые и поддерживаемые разработчиком шаблоны находятся в каталогах:

  • AutoPark$_LIBDOT — системные шаблоны
  • AutoParkDOT — локальные шаблоны

Именование переменных документа

Основные принципы на примерах.

  • Staff.TSN, Post.Name — переменные документа имеют названия в соответствии с наименованием полей файлов базы данных. Список файлов и их полей открывается в АвтоПарке по комбинации клавиш Ctrl+F10.
  • Officer.Sort.Name — переменные могут содержать в наименовании, как наименование основного файла, так и файла — справочника (Поле Name из записи файла Sort, соответствующей записи файла Officer).
  • OrderL[2].Sort.Name — в случае, когда подготавливаются переменные по нескольким записям в файле БД, после имени файла добавляется индекс (наименование сектора, соответствующего второй строке приказа). Важно знать: строки нумеруются, начиная с 0.
  • Staff.BegDate.Month, Man.Name.Short — в переменной содержится модифицированное значение поля (только месяц из даты приёма, ФИО с инициалами вместо имени и отчества).
  • OwnFirm.RegName, OwnFirm.AcntName — всегда создаётся набор переменных с префиксом OwnFirm, содержащих различные данные о Вашем предприятии (Наименование предприятия, ФИО главного бухгалтера).
  • Math.BalCost — если значение переменной не берётся из какого-то конкретного поля, а вычисляется, то наименование передаёт смысл значения (балансовая стоимость объекта).

Многострочные части

Если отчётная форма содержит одну или несколько многострочных частей, следует учитывать следующие особенности:
Подлежащая тиражированию часть документа должна быть помечена закладкой. Имя закладки определено в программе подготовки документа.
В наименовании переменных при тиражировании индексом строки считается первый встречающийся нулевой индекс в наименовании переменных. При добавлении каждой новой строки индекс увеличивается на единицу.

Если тиражируемая часть является набором строк таблицы Word, закладкой должны быть помечены и символы окончания строки (в режиме отображения непечатных символов выглядит как ¤).

Если предусмотренную шаблоном таблицу требуется продублировать или разбить на две (например, часть столбцов перенести на другую страницу), для каждой из таблиц должна быть установлена закладка. Дополнительным закладкам следует дать имя основной закладки с добавлением «_1» или «_2».

Изображения

Если в отчётной форме предусмотрена вставка изображений (например, фотография работника), то место для вставки изображения отмечается закладкой. В случае, если одно изображение требуется вставить в несколько мест документа, то дополнительным закладкам следует дать имя основной закладки с добавлением цифры от 1 до 9 (например, если АвтоПарк выводит фото работника в шаблон в закладку «Face», то добавление закладок «Face1», «Face7» приведёт к выводу такого же фото и в места, отмеченные этими закладками).

Разные режимы применяются на разных этапах работы с шаблонами. Изменяется режим через пункт меню «Сервис — Администратор — Настройка системного окружения — … для работы с шаблонами MS Word — Разработка шаблонов CtrlW». Изменение режима доступно только АДМИНИСТРАТОРУ.

Существует три режима работы с Word:

Обычный режим

Используется для подготовки документов на основе шаблона. При старте АвтоПарка режим всегда обычный.

При создании отчётной формы АвтоПарк выполняет следующие операции: создаёт документ Word на основе соответствующего шаблона, создаёт в документе необходимые переменные, присваивает им значения, обновляет все поля документа, отправляет документ на печать либо (в зависимости от выбора пользователя) сохраняет его и открывает для редактирования.

Также в некоторых документах производится тиражирование многострочной части и вставка графических изображений.

Режим разработки шаблона

Используется для облегчения модификации пользовательских шаблонов. Отличается от обычного тем, что создаёт резервную копию шаблона, открывает сам шаблон, а не документ на его основе, выгружает все переменные, а не только необходимые, а также не тиражирует многострочные части и не вставляет графические изображения.

Открытый шаблон содержит все переменные, подготавливаемые АвтоПарком. Для того, чтобы определить наименование именно той переменной, которую Вы желали бы вывести в отчётной форме, прежде всего стоит посмотреть в шаблонах, подобных разрабатываемому. Кроме того, во время разработки шаблона можно выбрать режим с выгрузкой полного списка переменных этого шаблона. Если переменной, которую Вы желали бы вывести в отчётной форме, нет в шаблоне, следует оформить ТТ на формирование такой переменной.

Особенности

  1. В режиме разработки графические изображения в шаблон не выгружаются и, соответственно, не видны.

Публикация шаблона

Используется для окончательного оформления пользовательского шаблона, подготовленного в режиме разработки или другим способом. Внимание! Работа в «обычном режиме» (печать на принтер, печать в файл) с неопубликованным пользовательским шаблоном невозможна!

Сразу после установки режима предлагается выбрать шаблон для публикации.

С выбранного шаблона делается резервная копия, затем удаляются неиспользуемые в шаблоне переменные, значения используемых заменяются на символы «X» и «0», после чего шаблон сохраняется, а режим работы с Word возвращается в прежнее значение.

Повторно опубликовать шаблон безвредно.

Как заказать новый Word-отчёт

  • В случае если Вам необходим какой-либо отчёт, его необходимо заказать, используя стандартную форму оформления технического требования.
  • Если по каким-либо причинам Вам необходимо, чтобы отчёт готовился с использованием MS Word, следует отразить данный факт в ТТ. В ТТ следует отразить, какие данные должны быть выгружены в Word, а также приложить к нему проект шаблона отчёта, выполненный в виде шаблона Word.

Создание пользовательского шаблона

Существует возможность пользователю самостоятельно дорабатывать и изменять готовую отчетную форму MS-Word.
При использовании такого шаблона АвтоПарк подготавливает набор переменных документа в обычном режиме, но формирование выходной формы происходит на основе пользовательского шаблона. Это позволяет использовать нестандартные формы вместо подготавливаемых АвтоПарком.

Может быть две причины самостоятельной модификации выходных форм:

  1. Данная форма изначально изготавливается самим пользователем (к этому относятся, например, шаблоны текстов договоров, дополнительных соглашений и т.п.). Согласно п. 2.9 договора на сопровождение системы АвтоПарк: «При реализации готовой настраиваемой или свободной выходной формы, Исполнитель, кроме изменений прикладного программного обеспечения, реализует также образец выходной формы стандартными программными средствами. Дальнейшие технические требования по изменению выходной формы, реализованной как готовая настраиваемая или свободная, могут выдаваться Заказчиком только в части факторов, которые определяются программным обеспечением Системы, в соответствии с положениями пункта 1.2.12.4 настоящего договора. Изменения таких выходных форм в части факторов, которые определяются стандартными программными средствами, в стоимость настоящего договора не входят». Это означает, что пользователи самостоятельно разрабатывают собственные формы на основании предоставленных образцов, но в случае, например, изменения внутренней структуры формы, разработчики окажут помощь в поддержке работоспособности таких форм.
  2. Пользователь самостоятельно вносит изменения в стандартный вид выходной формы. Чаще всего такие формы изготавливаются из-за того, что на предприятии принят вид формы, либо не отвечающий требованиям нормативных документов, либо содержащий лишнюю и ненужную в этих формах информацию (например, если на Вашем предприятии используется форма приказа о приёме на работу, отличная от стандартной формы T-1).

Следует осознавать, что в случае изменения состава стандартно подготавливаемых переменных или необходимого вида отчётной формы может возникать необходимость вносить изменения в пользовательский шаблон. В случае использования собственного шаблона это придётся делать самостоятельно, причем «внезапно». Исходя из этого, изготавливать собственные версии стандартных выходных форм следует очень аккуратно.

Некоторые особенности использования MS Word

Для корректной автоматической нумерации страниц в формах, при печати необходимо выставить «галочку» в меню «Сервис» — «Параметры», закладка «Печать», группа «Режим», пункт «обновлять поля».

Известные проблемы

При выгрузке в Word возникает ошибка «Запрашиваемый номер семейства не существует»

  • Обычно это возникает в случае, когда до выполнения операции на компьютере случилось ненормальное завершение MS Word (Word «вылетел» в процессе работы, либо выгрузка из АвтоПарк была прервана пользователем). Исправляется перезагрузкой компьютера.
  • В случае, когда ошибка проявляется всегда и перезагрузка не помогает, проблема в самом MS Word. Исправление: если MS Office версии 2002 и 2003 — может помочь установка Service Pack 3, иначе переустановка MS Office.

При выгрузке в Word возникает ошибка «Приложению Word не удалось запустить конвертер mswrd632»

  • Следует выполнить рекомендации корпорации Microsoft, изложенные в этой статье.

При выгрузке в Word появляется ошибка «Вызов был отклонен»

Возможные причины:

  • В уже открытом у вас Word был активный диалог. Закрыть диалог в Word и попробовать снова.
  • Не хватило системных ресурсов (много уже открытых Excel и Word). Позакрывать и повторить попытку.
  • Сбой в Windows или Word. Перезагрузить компьютер, если не помогает — обратиться к администратору.

При выгрузке в Word появляется ошибка «Неверно указана единица измерения»

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

Для устранения ошибки: открываем Microsoft Office Word далее Сервис — Настройка — Команды — Упорядочить команды — выбрать Панель инструментов — в ней Форматирование — в Элементах встать на Межстрочный интервал — Удалить — Закрыть — Закрыть — закрыть Microsoft Office Word.

Процедура настройки шаблона

  1. Зарегистрироваться АДМИНИСТРАТОРОМ.
  2. Сохранить копию имеющегося шаблона.
  3. Запустить АвтоПарк.
  4. Установить режим разработки.
  5. Выполнить пункт АвтоПарка, который в обычном режиме подготавливает либо печатает отчётную форму.
  6. Внести требуемые изменения в шаблон.
  7. Сохранить шаблон.
  8. Повторить пункты 5 — 7 пока не будет достигнуто желаемое.
  9. Установить режим публикации и выбрать нужный шаблон.
  10. Установить обычный режим.
  11. Зарегистрироваться обычным пользователем.
Примечания
  • Перед тем, как начать работу с шаблоном в режиме публикации или разработки, программе необходимо снять с файла шаблона атрибут «только для чтения». Если шаблон в этот момент используется другим пользователем, появляется сообщение «Ошибка при установке атрибутов файла». В этом случае можно попробовать подождать некоторое время и нажать «повторить», так как есть вероятность, что файл быстро освободится.
    Такое же сообщение может возникнуть, когда после публикации шаблона программа пытается установить атрибут «только для чтения». На этом этапе работы программы шаблон уже полностью подготовлен, и отмена не вернёт его в исходное состояние. Чтобы установить атрибут «только для чтения» в этом случае можно либо воспользоваться обычными средствами, либо повторно выполнить процедуру публикации шаблона.
  • Если не существует каталог DOTBY_USER, создать его.
    Если этот каталог не указан в RED-файле, указать его (должен быть самым первым в перечне месте хранения):
*.dot = dotby_user;dottmp_lib;dot;$_libdotap;$_libdotsys.

Проблема

При попытке использовать Microsoft Visual Basic for Applications (VBA) для изменения свойств документа появляется одно из приведенных ниже сообщений об ошибке.

Ошибка при выполнении ‘4248’:

Команда недоступна, так как нет открытых документов

Ошибка при выполнении ‘4605’:
Метод или свойство недоступны, поскольку окно документа не активно

или

Ошибка при выполнении ‘5941’:
Запрашиваемый номер семейства не существует

Причина

Проблема возникает, когда нет открытых документов или не открыт документ, на который сделана ссылка. В программе Word предусмотрено изменение свойств только открытых документов.

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

Временное решение

Корпорация Microsoft предлагает примеры программного кода только для иллюстрации и не предоставляет явных или подразумеваемых гарантий относительно их корректной работы в конкретных случаях и в пользовательских приложениях. Примеры в данной статье рассчитаны на пользователя, имеющего достаточный уровень знаний соответствующего языка программирования, а также необходимых средств разработки и отладки. Специалисты служб технической поддержки Microsoft могут пояснить назначение тех или иных конструкций кода в конкретном примере, но модификация примеров и их адаптация к задачам разработчика не поддерживается. Если вам требуется дополнительная консультация по вопросам программирования, вы можете обратиться в службу консалтинга Microsoft или связаться с сертифицированными партнерами компании Microsoft. Дополнительную информацию о партнерах корпорации Microsoft можно найти в Интернете по следующему адресу:

http://www.microsoft.com/partner/referral/ За дополнительной информацией обратитесь к веб-узле корпорации Microsoft по адресу:

http://support.microsoft.com/default.aspx?scid=fh;RU;CNTACTMSЗа дополнительной информацией об использовании приведенных в этой статье примеров обратитесь к следующей статье Microsoft Knowledge Base:

290140 How to Run Sample Code from Knowledge Ниже приведен пример макроса на языке Visual Basic for Applications для изменения значения поля Заголовок в диалоговом окне Свойства. Пример содержит специальный программный код для перехвата ошибок на случай, если нет открытых документов, и вывода соответствующего сообщения.

Sub ChangeDocProperties()

On Error GoTo ErrHandler
ActiveDocument.BuiltInDocumentProperties("Title") = "My Title"
Exit Sub

ErrHandler:
If Err <> 0 Then
'
' Display an error message.
'
MsgBox Err.Description
'
' Clear the error.
'
Err.Clear
Resume Next

End If

End Sub

Приведенный ниже программный код предусмотрен для выполнения следующих целей.

  • Перехват ошибок, если нет открытых документов

    и

  • Создание нового документа при перехвате ошибки

    и

  • Возобновление нормальной работы в строке, вызвавшей появление ошибки

Sub ChangeDocProperties()

On Error GoTo ErrHandler
ActiveDocument.BuiltInDocumentProperties("Title") = "My Title"
Exit Sub

ErrHandler:
If Err <> 0 Then
'
' Add a document.
'
Documents.Add
'
' Clear the error.
'
Err.Clear
'
' Run the code that caused the error.
'
Resume

End If

End Sub

Ссылки

Для получения помощи по работе с Visual Basic обратитесь к следующей статье Microsoft Knowledge Base:

305326 Programming Resources for Visual Basic for Applications

Нужна дополнительная помощь?

roslova

0 / 0 / 0

Регистрация: 11.12.2018

Сообщений: 3

1

Word

11.12.2018, 21:03. Показов 25411. Ответов 4

Метки vba, макрос (Все метки)


Всем привет. я не программист и у меня такая проблема: писала довольно простой макрос для создания формулы с автоматической нумерацией в ворде (чтобы формула не «съезжала» влево). вроде создаю сам макрос, но когда хочу добавить его на панель быстрого доступа, вылезает ошибка: «ошибка 5941: «запрашиваемый номер семейства не существует».

текст в VisualB такой:

Visual Basic
1
2
3
4
5
6
7
8
Sub формулка()
'
' формулка Макрос
'
'
    ActiveDocument.AttachedTemplate.BuildingBlockEntries( _
        "формула с нумерацией").Insert Where:=Selection.Range, RichText:=True
End Sub

и я понятия не имею, что надо исправить…
помогите пожалуйста

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

oh my god

1454 / 793 / 161

Регистрация: 05.01.2016

Сообщений: 2,307

Записей в блоге: 8

11.12.2018, 21:08

2

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

0

74 / 7 / 2

Регистрация: 15.11.2018

Сообщений: 72

11.12.2018, 21:13

3

https://support.microsoft.com
Проблема возникает, когда нет открытых документов или не открыт документ, на который сделана ссылка. В программе Word предусмотрено изменение свойств только открытых документов.
Примечание. Такие сообщения об ошибках могут появиться также в том случае, если открыт документ, у которого свойство Видимый имеет значение Ложь.

0

oh my god

1454 / 793 / 161

Регистрация: 05.01.2016

Сообщений: 2,307

Записей в блоге: 8

11.12.2018, 21:16

4

Цитата
Сообщение от ram007
Посмотреть сообщение

Видимый имеет значение Ложь.

защиту от дурака надо убрать ))

0

0 / 0 / 0

Регистрация: 11.12.2018

Сообщений: 3

12.12.2018, 08:52

 [ТС]

5

вот по этому видео пыталась сделать нумерацию. не вышло. сама формула в уравнениях имеется, а в маркрос ее не удается сделать. спасибо всем за наводки по решению проблемы

0

Делаю выгрузку из datagridview

введите сюда описание изображения

в документ Word

введите сюда описание изображения

с помощью этого кода:

string num = null;
int y = 0;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку.
    if (num == null)
    {
        wordDocument.Range(tbl.Cell(i + 2, 2).Range.Start, tbl.Cell(i + 2, 2).Range.End).Text = dataGridView1.Rows[i].Cells["Column2"].Value.ToString();
        num = dataGridView1.Rows[i].Cells["Column2"].Value.ToString();
    }
    else
    {
        if (num == dataGridView1.Rows[i].Cells["Column2"].Value.ToString())
        {
            y++;
            //тут он не может найди запрашиваемый номер семейства
            wordDocument.Range(tbl.Cell(i + 2 - y, 1).Range.Start, tbl.Cell(i + 2, 1).Range.End).Cells.Merge();
            //объединение второй колонки
            wordDocument.Range(tbl.Cell(i + 2 - y, 2).Range.Start, tbl.Cell(i + 2, 2).Range.End).Cells.Merge();
        }
        else
        {//если нет, то просто заполняем данными
            wordDocument.Range(tbl.Cell(i + 2, 1).Range.Start, tbl.Cell(i + 2, 1).Range.End).Text = dataGridView1.Rows[i].Cells["Column1"].Value.ToString();
            wordDocument.Range(tbl.Cell(i + 2, 2).Range.Start, tbl.Cell(i + 2, 2).Range.End).Text = dataGridView1.Rows[i].Cells["Column2"].Value.ToString();
            num = dataGridView1.Rows[i].Cells["Column2"].Value.ToString();
            y = 0;
        }
    }
    //заполняем остальные колонки данными
    wordDocument.Range(tbl.Cell(i + 2, 3).Range.Start, tbl.Cell(i + 2, 3).Range.End).Text = dataGridView1.Rows[i].Cells["Column3"].Value.ToString();
    wordDocument.Range(tbl.Cell(i + 2, 4).Range.Start, tbl.Cell(i + 2, 4).Range.End).Text = dataGridView1.Rows[i].Cells["Column4"].Value.ToString();
    wordDocument.Range(tbl.Cell(i + 2, 5).Range.Start, tbl.Cell(i + 2, 5).Range.End).Text = stepennn.ShowSubText(dataGridView1.Rows[i].Cells["Column5"].Value.ToString(), dataGridView1.Rows[i].Cells["Column6"].Value.ToString());
    wordDocument.Range(tbl.Cell(i + 2, 6).Range.Start, tbl.Cell(i + 2, 6).Range.End).Text = dataGridView1.Rows[i].Cells["Column6"].Value.ToString();
    wordDocument.Range(tbl.Cell(i + 2, 7).Range.Start, tbl.Cell(i + 2, 7).Range.End).Text = dataGridView1.Rows[i].Cells["Column7"].Value.ToString();
}

Делаю объединение строк в первой и во второй колонке. Если убрать объединение ячеек в первой колонке, то всё работает как надо. Во второй колонке объединение происходит нормально, а на первой происходит ошибка — Запрашиваемый номер семейства не существует. По логике всё должно работать, но чё то не могу додумать что не так

На третьем цикле происходит ошибка

Маленький пример

private void button1_Click(object sender, EventArgs e)
{
    Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
    var doc =word.Documents.Open( @"C:1.docx", ReadOnly: true);
    word.Visible = true; 
    object missing = Type.Missing;
    Microsoft.Office.Interop.Word.Table tbl = word.ActiveDocument.Tables[1];
    tbl.Borders.Enable = 1;

    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку
    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку
    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку
    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку
    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку
    doc.Range(tbl.Cell(2, 2).Range.Start, tbl.Cell(4, 2).Range.End).Cells.Merge();
    doc.Range(tbl.Cell(2, 3).Range.Start, tbl.Cell(3, 3).Range.End).Cells.Merge();
}

Заголовок таблицы тот же. В итоге результат тот же, при объединении ячеек в соседней колонке так же пишет — запрашиваемый номер семейства не существует.

Почему так, не пойму

 

ddmitriy

16.11.09 — 21:07

Платформа пишет такую ошибку:

Ошибка при вызове метода контекста (Item): Произошла исключительная ситуация (Microsoft Word): Запрашиваемый номер семейства не существует.

       Макет=ПолучитьМакет(«Макет»);

       MSWord = Макет.Получить();

       Попытка

           Шаблон = MSWord.Application.Documents(1);

           Шаблон.Activate();

Таблица = Шаблон.Tables.Item(1);

Эта обработка на моем компьютере отрабатывает. По отладчику посмотрел на другом компьютере (где не работает): количество таблиц равно нулю. На всякий случай нарисовал прямо на данном компьютере еще одну таблицу в ActiveDocument. И все равно количество таблицу в документе равно нулю.

Что может быть не так?

Falex

1 — 16.11.09 — 21:07

вылетает на этом месте:

Таблица = Шаблон.Tables.Item(1);

dk

2 — 16.11.09 — 21:15

видимо шаблон переаполняется

Лефмихалыч

3 — 16.11.09 — 21:23

а может нет там в этой коллекции элементов? Посмотри Шаблон.Tables.Count

Falex

4 — 16.11.09 — 21:24

всмысле шаблон перезаполняется?

так я и смотрю Шаблон.Tables.Count()

Он равен нулю.

Тьма

5 — 16.11.09 — 21:27

MSWord.Application.Documents().Count() — сколько?

Falex

6 — 16.11.09 — 21:27

причем я сделал еще так: взял скопировал свой шаблон в doc файл. скопировал его на тот компьютер. загрузил в activedocument. та же ерунда.

Falex

7 — 16.11.09 — 21:29

MSWord.Application.Documents().Count() = 1

Falex

8 — 16.11.09 — 21:30

причем у меня что закомментировано тоже не проходит, а проходит иначе

           //Шаблон.Fields.item(1).Result.Text = Формат(Дата, «ДЛФ=D»)+» г.»;

           Замена = Шаблон.Content.Find;

           Замена.Execute(«[Дата]», Ложь, Истина, Ложь, , , Истина, , Ложь, Формат(Дата, «ДЛФ=D»)+» г.»);

dk

9 — 16.11.09 — 21:35

Шаблон = MSWord.Application.Documents(1);

Шаблон.Tables.Count()

что говорит?

Falex

10 — 16.11.09 — 21:44

говорит 0

Falex

11 — 16.11.09 — 21:45

а у меня говорит 2 (сколько и есть на самом деле)

Falex

12 — 16.11.09 — 21:46

ЗЫ: базы одинаковые, но тестируются на разных машинах.

dk

13 — 16.11.09 — 21:52

версии МС офиса одинаковые?

Falex

14 — 16.11.09 — 21:53

и там и там 2007. СОхраняю для надежности в 2003.

dk

15 — 16.11.09 — 21:57

значит не тот макет

Falex

16 — 16.11.09 — 21:58

всмысле не тот макет?

Falex

17 — 16.11.09 — 22:00

попробовал иначе: прямо на том компьютере в конфигураторе создал макет (activedocument). Нарисовал 2 таблицы.Проверил количество таблиц при выводе: оно опять равно нулю.

Тьма

18 — 16.11.09 — 22:08

Ковычки

19 — 16.11.09 — 22:09

визибле=-1

Ковычки

20 — 16.11.09 — 22:14

+ выкинуть попытку

Falex

21 — 16.11.09 — 22:19

это что за ссылка?

Что попробовать?

Шаблон.Visible = -1;???

Тьма

22 — 16.11.09 — 22:21

Falex

23 — 16.11.09 — 22:28

блин.

Система в настоящее время не доступна. Пожалуйста попытайтесь позже или свяжитесь с службой поддержки, если Вам необходима срочная помощь.http://support.microsoft.com/contactus/?ws=support

Falex

24 — 16.11.09 — 22:37

как всегда майкрософт подводит ((

  

Falex

25 — 17.11.09 — 16:18

не работает (

Материал из AutoPark

Перейти к: навигация,
поиск

Содержание

  • 1 Функционирование
    • 1.1 Именование переменных документа
    • 1.2 Многострочные части
    • 1.3 Изображения
  • 2 Режимы работы с Word
    • 2.1 Обычный режим
    • 2.2 Режим разработки шаблона
      • 2.2.1 Особенности
    • 2.3 Публикация шаблона
  • 3 Как заказать новый Word-отчёт
  • 4 Создание пользовательского шаблона
  • 5 Некоторые особенности использования MS Word
  • 6 Известные проблемы
    • 6.1 При выгрузке в Word возникает ошибка «Запрашиваемый номер семейства не существует»
    • 6.2 При выгрузке в Word возникает ошибка «Приложению Word не удалось запустить конвертер mswrd632»
    • 6.3 При выгрузке в Word появляется ошибка «Вызов был отклонен»
    • 6.4 При выгрузке в Word появляется ошибка «Неверно указана единица измерения»
  • 7 Процедура настройки шаблона

Функционирование

MS Word — текстовый процессор. Обычно входит в состав пакета офисных программ MS Office. Система АвтоПарк поддерживает формирование отчетных форм с использованием MS Word.
Обратите внимание: версия MS Word, пригодная для использования в Системе АвтоПарк — не ниже MS Word 2000.

Данные в Word АвтоПарк передаёт путём создания в документе набора переменных и присваивания им значений. Для управления отображением данных в шаблоне документа используются поля. Более подробно о том, что такое поля и переменные документа, смотрите в справочной системе Word. Начальные сведения содержатся в статьях «О полях», «Коды полей: DOCVARIABLE».

Разрабатываемые и поддерживаемые разработчиком шаблоны находятся в каталогах:

  • AutoPark$_LIBDOT — системные шаблоны
  • AutoParkDOT — локальные шаблоны

Именование переменных документа

Основные принципы на примерах.

  • Staff.TSN, Post.Name — переменные документа имеют названия в соответствии с наименованием полей файлов базы данных. Список файлов и их полей открывается в АвтоПарке по комбинации клавиш Ctrl+F10.
  • Officer.Sort.Name — переменные могут содержать в наименовании, как наименование основного файла, так и файла — справочника (Поле Name из записи файла Sort, соответствующей записи файла Officer).
  • OrderL[2].Sort.Name — в случае, когда подготавливаются переменные по нескольким записям в файле БД, после имени файла добавляется индекс (наименование сектора, соответствующего второй строке приказа). Важно знать: строки нумеруются, начиная с 0.
  • Staff.BegDate.Month, Man.Name.Short — в переменной содержится модифицированное значение поля (только месяц из даты приёма, ФИО с инициалами вместо имени и отчества).
  • OwnFirm.RegName, OwnFirm.AcntName — всегда создаётся набор переменных с префиксом OwnFirm, содержащих различные данные о Вашем предприятии (Наименование предприятия, ФИО главного бухгалтера).
  • Math.BalCost — если значение переменной не берётся из какого-то конкретного поля, а вычисляется, то наименование передаёт смысл значения (балансовая стоимость объекта).

Многострочные части

Если отчётная форма содержит одну или несколько многострочных частей, следует учитывать следующие особенности:
Подлежащая тиражированию часть документа должна быть помечена закладкой. Имя закладки определено в программе подготовки документа.
В наименовании переменных при тиражировании индексом строки считается первый встречающийся нулевой индекс в наименовании переменных. При добавлении каждой новой строки индекс увеличивается на единицу.

Если тиражируемая часть является набором строк таблицы Word, закладкой должны быть помечены и символы окончания строки (в режиме отображения непечатных символов выглядит как ¤).

Если предусмотренную шаблоном таблицу требуется продублировать или разбить на две (например, часть столбцов перенести на другую страницу), для каждой из таблиц должна быть установлена закладка. Дополнительным закладкам следует дать имя основной закладки с добавлением «_1» или «_2».

Изображения

Если в отчётной форме предусмотрена вставка изображений (например, фотография работника), то место для вставки изображения отмечается закладкой. В случае, если одно изображение требуется вставить в несколько мест документа, то дополнительным закладкам следует дать имя основной закладки с добавлением цифры от 1 до 9 (например, если АвтоПарк выводит фото работника в шаблон в закладку «Face», то добавление закладок «Face1», «Face7» приведёт к выводу такого же фото и в места, отмеченные этими закладками).

Разные режимы применяются на разных этапах работы с шаблонами. Изменяется режим через пункт меню «Сервис — Администратор — Настройка системного окружения — … для работы с шаблонами MS Word — Разработка шаблонов CtrlW». Изменение режима доступно только АДМИНИСТРАТОРУ.

Существует три режима работы с Word:

Обычный режим

Используется для подготовки документов на основе шаблона. При старте АвтоПарка режим всегда обычный.

При создании отчётной формы АвтоПарк выполняет следующие операции: создаёт документ Word на основе соответствующего шаблона, создаёт в документе необходимые переменные, присваивает им значения, обновляет все поля документа, отправляет документ на печать либо (в зависимости от выбора пользователя) сохраняет его и открывает для редактирования.

Также в некоторых документах производится тиражирование многострочной части и вставка графических изображений.

Режим разработки шаблона

Используется для облегчения модификации пользовательских шаблонов. Отличается от обычного тем, что создаёт резервную копию шаблона, открывает сам шаблон, а не документ на его основе, выгружает все переменные, а не только необходимые, а также не тиражирует многострочные части и не вставляет графические изображения.

Открытый шаблон содержит все переменные, подготавливаемые АвтоПарком. Для того, чтобы определить наименование именно той переменной, которую Вы желали бы вывести в отчётной форме, прежде всего стоит посмотреть в шаблонах, подобных разрабатываемому. Кроме того, во время разработки шаблона можно выбрать режим с выгрузкой полного списка переменных этого шаблона. Если переменной, которую Вы желали бы вывести в отчётной форме, нет в шаблоне, следует оформить ТТ на формирование такой переменной.

Особенности

  1. В режиме разработки графические изображения в шаблон не выгружаются и, соответственно, не видны.

Публикация шаблона

Используется для окончательного оформления пользовательского шаблона, подготовленного в режиме разработки или другим способом. Внимание! Работа в «обычном режиме» (печать на принтер, печать в файл) с неопубликованным пользовательским шаблоном невозможна!

Сразу после установки режима предлагается выбрать шаблон для публикации.

С выбранного шаблона делается резервная копия, затем удаляются неиспользуемые в шаблоне переменные, значения используемых заменяются на символы «X» и «0», после чего шаблон сохраняется, а режим работы с Word возвращается в прежнее значение.

Повторно опубликовать шаблон безвредно.

Как заказать новый Word-отчёт

  • В случае если Вам необходим какой-либо отчёт, его необходимо заказать, используя стандартную форму оформления технического требования.
  • Если по каким-либо причинам Вам необходимо, чтобы отчёт готовился с использованием MS Word, следует отразить данный факт в ТТ. В ТТ следует отразить, какие данные должны быть выгружены в Word, а также приложить к нему проект шаблона отчёта, выполненный в виде шаблона Word.

Создание пользовательского шаблона

Существует возможность пользователю самостоятельно дорабатывать и изменять готовую отчетную форму MS-Word.
При использовании такого шаблона АвтоПарк подготавливает набор переменных документа в обычном режиме, но формирование выходной формы происходит на основе пользовательского шаблона. Это позволяет использовать нестандартные формы вместо подготавливаемых АвтоПарком.

Может быть две причины самостоятельной модификации выходных форм:

  1. Данная форма изначально изготавливается самим пользователем (к этому относятся, например, шаблоны текстов договоров, дополнительных соглашений и т.п.). Согласно п. 2.9 договора на сопровождение системы АвтоПарк: «При реализации готовой настраиваемой или свободной выходной формы, Исполнитель, кроме изменений прикладного программного обеспечения, реализует также образец выходной формы стандартными программными средствами. Дальнейшие технические требования по изменению выходной формы, реализованной как готовая настраиваемая или свободная, могут выдаваться Заказчиком только в части факторов, которые определяются программным обеспечением Системы, в соответствии с положениями пункта 1.2.12.4 настоящего договора. Изменения таких выходных форм в части факторов, которые определяются стандартными программными средствами, в стоимость настоящего договора не входят». Это означает, что пользователи самостоятельно разрабатывают собственные формы на основании предоставленных образцов, но в случае, например, изменения внутренней структуры формы, разработчики окажут помощь в поддержке работоспособности таких форм.
  2. Пользователь самостоятельно вносит изменения в стандартный вид выходной формы. Чаще всего такие формы изготавливаются из-за того, что на предприятии принят вид формы, либо не отвечающий требованиям нормативных документов, либо содержащий лишнюю и ненужную в этих формах информацию (например, если на Вашем предприятии используется форма приказа о приёме на работу, отличная от стандартной формы T-1).

Следует осознавать, что в случае изменения состава стандартно подготавливаемых переменных или необходимого вида отчётной формы может возникать необходимость вносить изменения в пользовательский шаблон. В случае использования собственного шаблона это придётся делать самостоятельно, причем «внезапно». Исходя из этого, изготавливать собственные версии стандартных выходных форм следует очень аккуратно.

Некоторые особенности использования MS Word

Для корректной автоматической нумерации страниц в формах, при печати необходимо выставить «галочку» в меню «Сервис» — «Параметры», закладка «Печать», группа «Режим», пункт «обновлять поля».

Известные проблемы

При выгрузке в Word возникает ошибка «Запрашиваемый номер семейства не существует»

  • Обычно это возникает в случае, когда до выполнения операции на компьютере случилось ненормальное завершение MS Word (Word «вылетел» в процессе работы, либо выгрузка из АвтоПарк была прервана пользователем). Исправляется перезагрузкой компьютера.
  • В случае, когда ошибка проявляется всегда и перезагрузка не помогает, проблема в самом MS Word. Исправление: если MS Office версии 2002 и 2003 — может помочь установка Service Pack 3, иначе переустановка MS Office.

При выгрузке в Word возникает ошибка «Приложению Word не удалось запустить конвертер mswrd632»

  • Следует выполнить рекомендации корпорации Microsoft, изложенные в этой статье.

При выгрузке в Word появляется ошибка «Вызов был отклонен»

Возможные причины:

  • В уже открытом у вас Word был активный диалог. Закрыть диалог в Word и попробовать снова.
  • Не хватило системных ресурсов (много уже открытых Excel и Word). Позакрывать и повторить попытку.
  • Сбой в Windows или Word. Перезагрузить компьютер, если не помогает — обратиться к администратору.

При выгрузке в Word появляется ошибка «Неверно указана единица измерения»

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

Для устранения ошибки: открываем Microsoft Office Word далее Сервис — Настройка — Команды — Упорядочить команды — выбрать Панель инструментов — в ней Форматирование — в Элементах встать на Межстрочный интервал — Удалить — Закрыть — Закрыть — закрыть Microsoft Office Word.

Процедура настройки шаблона

  1. Зарегистрироваться АДМИНИСТРАТОРОМ.
  2. Сохранить копию имеющегося шаблона.
  3. Запустить АвтоПарк.
  4. Установить режим разработки.
  5. Выполнить пункт АвтоПарка, который в обычном режиме подготавливает либо печатает отчётную форму.
  6. Внести требуемые изменения в шаблон.
  7. Сохранить шаблон.
  8. Повторить пункты 5 — 7 пока не будет достигнуто желаемое.
  9. Установить режим публикации и выбрать нужный шаблон.
  10. Установить обычный режим.
  11. Зарегистрироваться обычным пользователем.
Примечания
  • Перед тем, как начать работу с шаблоном в режиме публикации или разработки, программе необходимо снять с файла шаблона атрибут «только для чтения». Если шаблон в этот момент используется другим пользователем, появляется сообщение «Ошибка при установке атрибутов файла». В этом случае можно попробовать подождать некоторое время и нажать «повторить», так как есть вероятность, что файл быстро освободится.
    Такое же сообщение может возникнуть, когда после публикации шаблона программа пытается установить атрибут «только для чтения». На этом этапе работы программы шаблон уже полностью подготовлен, и отмена не вернёт его в исходное состояние. Чтобы установить атрибут «только для чтения» в этом случае можно либо воспользоваться обычными средствами, либо повторно выполнить процедуру публикации шаблона.
  • Если не существует каталог DOTBY_USER, создать его.
    Если этот каталог не указан в RED-файле, указать его (должен быть самым первым в перечне месте хранения):
*.dot = dotby_user;dottmp_lib;dot;$_libdotap;$_libdotsys.

Проблема

При попытке использовать Microsoft Visual Basic for Applications (VBA) для изменения свойств документа появляется одно из приведенных ниже сообщений об ошибке.

Ошибка при выполнении ‘4248’:

Команда недоступна, так как нет открытых документов

Ошибка при выполнении ‘4605’:
Метод или свойство недоступны, поскольку окно документа не активно

или

Ошибка при выполнении ‘5941’:
Запрашиваемый номер семейства не существует

Причина

Проблема возникает, когда нет открытых документов или не открыт документ, на который сделана ссылка. В программе Word предусмотрено изменение свойств только открытых документов.

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

Временное решение

Корпорация Microsoft предлагает примеры программного кода только для иллюстрации и не предоставляет явных или подразумеваемых гарантий относительно их корректной работы в конкретных случаях и в пользовательских приложениях. Примеры в данной статье рассчитаны на пользователя, имеющего достаточный уровень знаний соответствующего языка программирования, а также необходимых средств разработки и отладки. Специалисты служб технической поддержки Microsoft могут пояснить назначение тех или иных конструкций кода в конкретном примере, но модификация примеров и их адаптация к задачам разработчика не поддерживается. Если вам требуется дополнительная консультация по вопросам программирования, вы можете обратиться в службу консалтинга Microsoft или связаться с сертифицированными партнерами компании Microsoft. Дополнительную информацию о партнерах корпорации Microsoft можно найти в Интернете по следующему адресу:

http://www.microsoft.com/partner/referral/ За дополнительной информацией обратитесь к веб-узле корпорации Microsoft по адресу:

http://support.microsoft.com/default.aspx?scid=fh;RU;CNTACTMSЗа дополнительной информацией об использовании приведенных в этой статье примеров обратитесь к следующей статье Microsoft Knowledge Base:

290140 How to Run Sample Code from Knowledge Ниже приведен пример макроса на языке Visual Basic for Applications для изменения значения поля Заголовок в диалоговом окне Свойства. Пример содержит специальный программный код для перехвата ошибок на случай, если нет открытых документов, и вывода соответствующего сообщения.

Sub ChangeDocProperties()

On Error GoTo ErrHandler
ActiveDocument.BuiltInDocumentProperties("Title") = "My Title"
Exit Sub

ErrHandler:
If Err <> 0 Then
'
' Display an error message.
'
MsgBox Err.Description
'
' Clear the error.
'
Err.Clear
Resume Next

End If

End Sub

Приведенный ниже программный код предусмотрен для выполнения следующих целей.

  • Перехват ошибок, если нет открытых документов

    и

  • Создание нового документа при перехвате ошибки

    и

  • Возобновление нормальной работы в строке, вызвавшей появление ошибки

Sub ChangeDocProperties()

On Error GoTo ErrHandler
ActiveDocument.BuiltInDocumentProperties("Title") = "My Title"
Exit Sub

ErrHandler:
If Err <> 0 Then
'
' Add a document.
'
Documents.Add
'
' Clear the error.
'
Err.Clear
'
' Run the code that caused the error.
'
Resume

End If

End Sub

Ссылки

Для получения помощи по работе с Visual Basic обратитесь к следующей статье Microsoft Knowledge Base:

305326 Programming Resources for Visual Basic for Applications

Нужна дополнительная помощь?

roslova

0 / 0 / 0

Регистрация: 11.12.2018

Сообщений: 3

1

Word

11.12.2018, 21:03. Показов 25411. Ответов 4

Метки vba, макрос (Все метки)


Всем привет. я не программист и у меня такая проблема: писала довольно простой макрос для создания формулы с автоматической нумерацией в ворде (чтобы формула не «съезжала» влево). вроде создаю сам макрос, но когда хочу добавить его на панель быстрого доступа, вылезает ошибка: «ошибка 5941: «запрашиваемый номер семейства не существует».

текст в VisualB такой:

Visual Basic
1
2
3
4
5
6
7
8
Sub формулка()
'
' формулка Макрос
'
'
    ActiveDocument.AttachedTemplate.BuildingBlockEntries( _
        "формула с нумерацией").Insert Where:=Selection.Range, RichText:=True
End Sub

и я понятия не имею, что надо исправить…
помогите пожалуйста

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

oh my god

1454 / 793 / 161

Регистрация: 05.01.2016

Сообщений: 2,307

Записей в блоге: 8

11.12.2018, 21:08

2

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

0

74 / 7 / 2

Регистрация: 15.11.2018

Сообщений: 72

11.12.2018, 21:13

3

https://support.microsoft.com
Проблема возникает, когда нет открытых документов или не открыт документ, на который сделана ссылка. В программе Word предусмотрено изменение свойств только открытых документов.
Примечание. Такие сообщения об ошибках могут появиться также в том случае, если открыт документ, у которого свойство Видимый имеет значение Ложь.

0

oh my god

1454 / 793 / 161

Регистрация: 05.01.2016

Сообщений: 2,307

Записей в блоге: 8

11.12.2018, 21:16

4

Цитата
Сообщение от ram007
Посмотреть сообщение

Видимый имеет значение Ложь.

защиту от дурака надо убрать ))

0

0 / 0 / 0

Регистрация: 11.12.2018

Сообщений: 3

12.12.2018, 08:52

 [ТС]

5

вот по этому видео пыталась сделать нумерацию. не вышло. сама формула в уравнениях имеется, а в маркрос ее не удается сделать. спасибо всем за наводки по решению проблемы

0

Делаю выгрузку из datagridview

введите сюда описание изображения

в документ Word

введите сюда описание изображения

с помощью этого кода:

string num = null;
int y = 0;
for (int i = 0; i < dataGridView1.Rows.Count; i++)
{
    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку.
    if (num == null)
    {
        wordDocument.Range(tbl.Cell(i + 2, 2).Range.Start, tbl.Cell(i + 2, 2).Range.End).Text = dataGridView1.Rows[i].Cells["Column2"].Value.ToString();
        num = dataGridView1.Rows[i].Cells["Column2"].Value.ToString();
    }
    else
    {
        if (num == dataGridView1.Rows[i].Cells["Column2"].Value.ToString())
        {
            y++;
            //тут он не может найди запрашиваемый номер семейства
            wordDocument.Range(tbl.Cell(i + 2 - y, 1).Range.Start, tbl.Cell(i + 2, 1).Range.End).Cells.Merge();
            //объединение второй колонки
            wordDocument.Range(tbl.Cell(i + 2 - y, 2).Range.Start, tbl.Cell(i + 2, 2).Range.End).Cells.Merge();
        }
        else
        {//если нет, то просто заполняем данными
            wordDocument.Range(tbl.Cell(i + 2, 1).Range.Start, tbl.Cell(i + 2, 1).Range.End).Text = dataGridView1.Rows[i].Cells["Column1"].Value.ToString();
            wordDocument.Range(tbl.Cell(i + 2, 2).Range.Start, tbl.Cell(i + 2, 2).Range.End).Text = dataGridView1.Rows[i].Cells["Column2"].Value.ToString();
            num = dataGridView1.Rows[i].Cells["Column2"].Value.ToString();
            y = 0;
        }
    }
    //заполняем остальные колонки данными
    wordDocument.Range(tbl.Cell(i + 2, 3).Range.Start, tbl.Cell(i + 2, 3).Range.End).Text = dataGridView1.Rows[i].Cells["Column3"].Value.ToString();
    wordDocument.Range(tbl.Cell(i + 2, 4).Range.Start, tbl.Cell(i + 2, 4).Range.End).Text = dataGridView1.Rows[i].Cells["Column4"].Value.ToString();
    wordDocument.Range(tbl.Cell(i + 2, 5).Range.Start, tbl.Cell(i + 2, 5).Range.End).Text = stepennn.ShowSubText(dataGridView1.Rows[i].Cells["Column5"].Value.ToString(), dataGridView1.Rows[i].Cells["Column6"].Value.ToString());
    wordDocument.Range(tbl.Cell(i + 2, 6).Range.Start, tbl.Cell(i + 2, 6).Range.End).Text = dataGridView1.Rows[i].Cells["Column6"].Value.ToString();
    wordDocument.Range(tbl.Cell(i + 2, 7).Range.Start, tbl.Cell(i + 2, 7).Range.End).Text = dataGridView1.Rows[i].Cells["Column7"].Value.ToString();
}

Делаю объединение строк в первой и во второй колонке. Если убрать объединение ячеек в первой колонке, то всё работает как надо. Во второй колонке объединение происходит нормально, а на первой происходит ошибка — Запрашиваемый номер семейства не существует. По логике всё должно работать, но чё то не могу додумать что не так

На третьем цикле происходит ошибка

Маленький пример

private void button1_Click(object sender, EventArgs e)
{
    Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();
    var doc =word.Documents.Open( @"C:1.docx", ReadOnly: true);
    word.Visible = true; 
    object missing = Type.Missing;
    Microsoft.Office.Interop.Word.Table tbl = word.ActiveDocument.Tables[1];
    tbl.Borders.Enable = 1;

    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку
    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку
    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку
    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку
    tbl.Rows.Add(ref missing);//Добавляем в таблицу строку
    doc.Range(tbl.Cell(2, 2).Range.Start, tbl.Cell(4, 2).Range.End).Cells.Merge();
    doc.Range(tbl.Cell(2, 3).Range.Start, tbl.Cell(3, 3).Range.End).Cells.Merge();
}

Заголовок таблицы тот же. В итоге результат тот же, при объединении ячеек в соседней колонке так же пишет — запрашиваемый номер семейства не существует.

Почему так, не пойму

 

ddmitriy

Пользователь

Сообщений: 5
Регистрация: 01.10.2014

#1

21.06.2017 17:17:09

Добрый день.
При вставке фотографии в шаблон Word выскакивает ошибка «5941 Запрашиваемый номер семейства не существует»

Код
With WD
Picture_count = Picture_count + 1
    .Bookmarks("pic1").Range.Select
    FolderPic = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, "Pic1")
    Dim coll As Collection
    If Dir(FolderPic, vbDirectory) = "" Then
        MsgBox "No Folder Pic1" & folder$ & "»", vbCritical, "No Folder "
        GoTo pict_1
    End If
    Set coll = FilenamesCollection(FolderPic, ".jpg")
    For i = 1 To coll.Count
          
       WA.Selection.InlineShapes.AddPicture Filename:=coll.Item(i)
       WA.Selection.TypeParagraph
    Next i
pict_1: End With

Ошибка указывает на строку.

Код
.Bookmarks("pic1").Range.Select

Закладки проверил, всё в норме. Подскажите что ещё может быть не так.

Спасибо.

 

The_Prist

Пользователь

Сообщений: 13911
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Ответ один — его действительно не существует. Если Вы в одну и ту же закладку в цикле что-то пытаетесь записать, то это вполне возможно, т.к. после первой записи закладка как правило удаляется.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

R Dmitry

Пользователь

Сообщений: 3103
Регистрация: 22.12.2012

Excel,MSSQL,Oracle,Qlik

#3

21.06.2017 17:34:49

покажите весь код
возможно не правильно обращаетесь к документу либо обращаетесь к неактивному документу с командой select
попробуйте

Код
wd.Activate
 wd.Bookmarks("pic1").Range.Select

Спасибо

 

R Dmitry

Пользователь

Сообщений: 3103
Регистрация: 22.12.2012

Excel,MSSQL,Oracle,Qlik

#4

21.06.2017 17:49:06

Цитата
The_Prist написал:
т.к. после первой записи закладка как правило удаляется.

——
Если использовать не диапазон (кусок) текста в закладке, а положение курсора, то ничего не удаляется :))

Спасибо

 

The_Prist

Пользователь

Сообщений: 13911
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Дмитрий, в данном случае активация избыточна, т.к. идет обращение к закладкам конкретного документа: WD. Поэтому озвученная ошибка не может возникнуть по этой причине. Если бы активен был другой документ, то была бы другая ошибка.

Изменено: The_Prist21.06.2017 17:50:14

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

R Dmitry

Пользователь

Сообщений: 3103
Регистрация: 22.12.2012

Excel,MSSQL,Oracle,Qlik

#6

21.06.2017 17:51:01

The_Prist,  Поэтому и прошу старттопика показать весь кусок кода. Что там у него за WD только он знает :)

Спасибо

 

ddmitriy

Пользователь

Сообщений: 5
Регистрация: 01.10.2014

#7

21.06.2017 17:54:07

R Dmitry? не помогло.
Весь код:

Скрытый текст

 

The_Prist

Пользователь

Сообщений: 13911
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#8

21.06.2017 17:54:37

Цитата
R Dmitry написал:
Если использовать не диапазон

если кусок — да, не удалится. Но у ТС-а же не так :)

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

  

Falex

16.11.09 — 21:07

Платформа пишет такую ошибку:

Ошибка при вызове метода контекста (Item): Произошла исключительная ситуация (Microsoft Word): Запрашиваемый номер семейства не существует.

       Макет=ПолучитьМакет(«Макет»);

       MSWord = Макет.Получить();

       Попытка

           Шаблон = MSWord.Application.Documents(1);

           Шаблон.Activate();

Таблица = Шаблон.Tables.Item(1);

Эта обработка на моем компьютере отрабатывает. По отладчику посмотрел на другом компьютере (где не работает): количество таблиц равно нулю. На всякий случай нарисовал прямо на данном компьютере еще одну таблицу в ActiveDocument. И все равно количество таблицу в документе равно нулю.

Что может быть не так?

  

Falex

1 — 16.11.09 — 21:07

вылетает на этом месте:

Таблица = Шаблон.Tables.Item(1);

  

dk

2 — 16.11.09 — 21:15

видимо шаблон переаполняется

  

Лефмихалыч

3 — 16.11.09 — 21:23

а может нет там в этой коллекции элементов? Посмотри Шаблон.Tables.Count

  

Falex

4 — 16.11.09 — 21:24

всмысле шаблон перезаполняется?

так я и смотрю Шаблон.Tables.Count()

Он равен нулю.

  

Тьма

5 — 16.11.09 — 21:27

MSWord.Application.Documents().Count() — сколько?

  

Falex

6 — 16.11.09 — 21:27

причем я сделал еще так: взял скопировал свой шаблон в doc файл. скопировал его на тот компьютер. загрузил в activedocument. та же ерунда.

  

Falex

7 — 16.11.09 — 21:29

MSWord.Application.Documents().Count() = 1

  

Falex

8 — 16.11.09 — 21:30

причем у меня что закомментировано тоже не проходит, а проходит иначе

           //Шаблон.Fields.item(1).Result.Text = Формат(Дата, «ДЛФ=D»)+» г.»;

           Замена = Шаблон.Content.Find;

           Замена.Execute(«[Дата]», Ложь, Истина, Ложь, , , Истина, , Ложь, Формат(Дата, «ДЛФ=D»)+» г.»);

  

dk

9 — 16.11.09 — 21:35

Шаблон = MSWord.Application.Documents(1);

Шаблон.Tables.Count()

что говорит?

  

Falex

10 — 16.11.09 — 21:44

говорит 0

  

Falex

11 — 16.11.09 — 21:45

а у меня говорит 2 (сколько и есть на самом деле)

  

Falex

12 — 16.11.09 — 21:46

ЗЫ: базы одинаковые, но тестируются на разных машинах.

  

dk

13 — 16.11.09 — 21:52

версии МС офиса одинаковые?

  

Falex

14 — 16.11.09 — 21:53

и там и там 2007. СОхраняю для надежности в 2003.

  

dk

15 — 16.11.09 — 21:57

значит не тот макет

  

Falex

16 — 16.11.09 — 21:58

всмысле не тот макет?

  

Falex

17 — 16.11.09 — 22:00

попробовал иначе: прямо на том компьютере в конфигураторе создал макет (activedocument). Нарисовал 2 таблицы.Проверил количество таблиц при выводе: оно опять равно нулю.

  

Тьма

18 — 16.11.09 — 22:08

  

Ковычки

19 — 16.11.09 — 22:09

визибле=-1

  

Ковычки

20 — 16.11.09 — 22:14

+ выкинуть попытку

  

Falex

21 — 16.11.09 — 22:19

это что за ссылка?

Что попробовать?

Шаблон.Visible = -1;???

  

Тьма

22 — 16.11.09 — 22:21

  

Falex

23 — 16.11.09 — 22:28

блин.

Система в настоящее время не доступна. Пожалуйста попытайтесь позже или свяжитесь с службой поддержки, если Вам необходима срочная помощь.http://support.microsoft.com/contactus/?ws=support

  

Falex

24 — 16.11.09 — 22:37

как всегда майкрософт подводит ((

  

Falex

25 — 17.11.09 — 16:18

не работает (

Материал из AutoPark

Перейти к: навигация,
поиск

Содержание

  • 1 Функционирование
    • 1.1 Именование переменных документа
    • 1.2 Многострочные части
    • 1.3 Изображения
  • 2 Режимы работы с Word
    • 2.1 Обычный режим
    • 2.2 Режим разработки шаблона
      • 2.2.1 Особенности
    • 2.3 Публикация шаблона
  • 3 Как заказать новый Word-отчёт
  • 4 Создание пользовательского шаблона
  • 5 Некоторые особенности использования MS Word
  • 6 Известные проблемы
    • 6.1 При выгрузке в Word возникает ошибка «Запрашиваемый номер семейства не существует»
    • 6.2 При выгрузке в Word возникает ошибка «Приложению Word не удалось запустить конвертер mswrd632»
    • 6.3 При выгрузке в Word появляется ошибка «Вызов был отклонен»
    • 6.4 При выгрузке в Word появляется ошибка «Неверно указана единица измерения»
  • 7 Процедура настройки шаблона

Функционирование

MS Word — текстовый процессор. Обычно входит в состав пакета офисных программ MS Office. Система АвтоПарк поддерживает формирование отчетных форм с использованием MS Word.
Обратите внимание: версия MS Word, пригодная для использования в Системе АвтоПарк — не ниже MS Word 2000.

Данные в Word АвтоПарк передаёт путём создания в документе набора переменных и присваивания им значений. Для управления отображением данных в шаблоне документа используются поля. Более подробно о том, что такое поля и переменные документа, смотрите в справочной системе Word. Начальные сведения содержатся в статьях «О полях», «Коды полей: DOCVARIABLE».

Разрабатываемые и поддерживаемые разработчиком шаблоны находятся в каталогах:

  • AutoPark$_LIBDOT — системные шаблоны
  • AutoParkDOT — локальные шаблоны

Именование переменных документа

Основные принципы на примерах.

  • Staff.TSN, Post.Name — переменные документа имеют названия в соответствии с наименованием полей файлов базы данных. Список файлов и их полей открывается в АвтоПарке по комбинации клавиш Ctrl+F10.
  • Officer.Sort.Name — переменные могут содержать в наименовании, как наименование основного файла, так и файла — справочника (Поле Name из записи файла Sort, соответствующей записи файла Officer).
  • OrderL[2].Sort.Name — в случае, когда подготавливаются переменные по нескольким записям в файле БД, после имени файла добавляется индекс (наименование сектора, соответствующего второй строке приказа). Важно знать: строки нумеруются, начиная с 0.
  • Staff.BegDate.Month, Man.Name.Short — в переменной содержится модифицированное значение поля (только месяц из даты приёма, ФИО с инициалами вместо имени и отчества).
  • OwnFirm.RegName, OwnFirm.AcntName — всегда создаётся набор переменных с префиксом OwnFirm, содержащих различные данные о Вашем предприятии (Наименование предприятия, ФИО главного бухгалтера).
  • Math.BalCost — если значение переменной не берётся из какого-то конкретного поля, а вычисляется, то наименование передаёт смысл значения (балансовая стоимость объекта).

Многострочные части

Если отчётная форма содержит одну или несколько многострочных частей, следует учитывать следующие особенности:
Подлежащая тиражированию часть документа должна быть помечена закладкой. Имя закладки определено в программе подготовки документа.
В наименовании переменных при тиражировании индексом строки считается первый встречающийся нулевой индекс в наименовании переменных. При добавлении каждой новой строки индекс увеличивается на единицу.

Если тиражируемая часть является набором строк таблицы Word, закладкой должны быть помечены и символы окончания строки (в режиме отображения непечатных символов выглядит как ¤).

Если предусмотренную шаблоном таблицу требуется продублировать или разбить на две (например, часть столбцов перенести на другую страницу), для каждой из таблиц должна быть установлена закладка. Дополнительным закладкам следует дать имя основной закладки с добавлением «_1» или «_2».

Изображения

Если в отчётной форме предусмотрена вставка изображений (например, фотография работника), то место для вставки изображения отмечается закладкой. В случае, если одно изображение требуется вставить в несколько мест документа, то дополнительным закладкам следует дать имя основной закладки с добавлением цифры от 1 до 9 (например, если АвтоПарк выводит фото работника в шаблон в закладку «Face», то добавление закладок «Face1», «Face7» приведёт к выводу такого же фото и в места, отмеченные этими закладками).

Разные режимы применяются на разных этапах работы с шаблонами. Изменяется режим через пункт меню «Сервис — Администратор — Настройка системного окружения — … для работы с шаблонами MS Word — Разработка шаблонов CtrlW». Изменение режима доступно только АДМИНИСТРАТОРУ.

Существует три режима работы с Word:

Обычный режим

Используется для подготовки документов на основе шаблона. При старте АвтоПарка режим всегда обычный.

При создании отчётной формы АвтоПарк выполняет следующие операции: создаёт документ Word на основе соответствующего шаблона, создаёт в документе необходимые переменные, присваивает им значения, обновляет все поля документа, отправляет документ на печать либо (в зависимости от выбора пользователя) сохраняет его и открывает для редактирования.

Также в некоторых документах производится тиражирование многострочной части и вставка графических изображений.

Режим разработки шаблона

Используется для облегчения модификации пользовательских шаблонов. Отличается от обычного тем, что создаёт резервную копию шаблона, открывает сам шаблон, а не документ на его основе, выгружает все переменные, а не только необходимые, а также не тиражирует многострочные части и не вставляет графические изображения.

Открытый шаблон содержит все переменные, подготавливаемые АвтоПарком. Для того, чтобы определить наименование именно той переменной, которую Вы желали бы вывести в отчётной форме, прежде всего стоит посмотреть в шаблонах, подобных разрабатываемому. Кроме того, во время разработки шаблона можно выбрать режим с выгрузкой полного списка переменных этого шаблона. Если переменной, которую Вы желали бы вывести в отчётной форме, нет в шаблоне, следует оформить ТТ на формирование такой переменной.

Особенности

  1. В режиме разработки графические изображения в шаблон не выгружаются и, соответственно, не видны.

Публикация шаблона

Используется для окончательного оформления пользовательского шаблона, подготовленного в режиме разработки или другим способом. Внимание! Работа в «обычном режиме» (печать на принтер, печать в файл) с неопубликованным пользовательским шаблоном невозможна!

Сразу после установки режима предлагается выбрать шаблон для публикации.

С выбранного шаблона делается резервная копия, затем удаляются неиспользуемые в шаблоне переменные, значения используемых заменяются на символы «X» и «0», после чего шаблон сохраняется, а режим работы с Word возвращается в прежнее значение.

Повторно опубликовать шаблон безвредно.

Как заказать новый Word-отчёт

  • В случае если Вам необходим какой-либо отчёт, его необходимо заказать, используя стандартную форму оформления технического требования.
  • Если по каким-либо причинам Вам необходимо, чтобы отчёт готовился с использованием MS Word, следует отразить данный факт в ТТ. В ТТ следует отразить, какие данные должны быть выгружены в Word, а также приложить к нему проект шаблона отчёта, выполненный в виде шаблона Word.

Создание пользовательского шаблона

Существует возможность пользователю самостоятельно дорабатывать и изменять готовую отчетную форму MS-Word.
При использовании такого шаблона АвтоПарк подготавливает набор переменных документа в обычном режиме, но формирование выходной формы происходит на основе пользовательского шаблона. Это позволяет использовать нестандартные формы вместо подготавливаемых АвтоПарком.

Может быть две причины самостоятельной модификации выходных форм:

  1. Данная форма изначально изготавливается самим пользователем (к этому относятся, например, шаблоны текстов договоров, дополнительных соглашений и т.п.). Согласно п. 2.9 договора на сопровождение системы АвтоПарк: «При реализации готовой настраиваемой или свободной выходной формы, Исполнитель, кроме изменений прикладного программного обеспечения, реализует также образец выходной формы стандартными программными средствами. Дальнейшие технические требования по изменению выходной формы, реализованной как готовая настраиваемая или свободная, могут выдаваться Заказчиком только в части факторов, которые определяются программным обеспечением Системы, в соответствии с положениями пункта 1.2.12.4 настоящего договора. Изменения таких выходных форм в части факторов, которые определяются стандартными программными средствами, в стоимость настоящего договора не входят». Это означает, что пользователи самостоятельно разрабатывают собственные формы на основании предоставленных образцов, но в случае, например, изменения внутренней структуры формы, разработчики окажут помощь в поддержке работоспособности таких форм.
  2. Пользователь самостоятельно вносит изменения в стандартный вид выходной формы. Чаще всего такие формы изготавливаются из-за того, что на предприятии принят вид формы, либо не отвечающий требованиям нормативных документов, либо содержащий лишнюю и ненужную в этих формах информацию (например, если на Вашем предприятии используется форма приказа о приёме на работу, отличная от стандартной формы T-1).

Следует осознавать, что в случае изменения состава стандартно подготавливаемых переменных или необходимого вида отчётной формы может возникать необходимость вносить изменения в пользовательский шаблон. В случае использования собственного шаблона это придётся делать самостоятельно, причем «внезапно». Исходя из этого, изготавливать собственные версии стандартных выходных форм следует очень аккуратно.

Некоторые особенности использования MS Word

Для корректной автоматической нумерации страниц в формах, при печати необходимо выставить «галочку» в меню «Сервис» — «Параметры», закладка «Печать», группа «Режим», пункт «обновлять поля».

Известные проблемы

При выгрузке в Word возникает ошибка «Запрашиваемый номер семейства не существует»

  • Обычно это возникает в случае, когда до выполнения операции на компьютере случилось ненормальное завершение MS Word (Word «вылетел» в процессе работы, либо выгрузка из АвтоПарк была прервана пользователем). Исправляется перезагрузкой компьютера.
  • В случае, когда ошибка проявляется всегда и перезагрузка не помогает, проблема в самом MS Word. Исправление: если MS Office версии 2002 и 2003 — может помочь установка Service Pack 3, иначе переустановка MS Office.

При выгрузке в Word возникает ошибка «Приложению Word не удалось запустить конвертер mswrd632»

  • Следует выполнить рекомендации корпорации Microsoft, изложенные в этой статье.

При выгрузке в Word появляется ошибка «Вызов был отклонен»

Возможные причины:

  • В уже открытом у вас Word был активный диалог. Закрыть диалог в Word и попробовать снова.
  • Не хватило системных ресурсов (много уже открытых Excel и Word). Позакрывать и повторить попытку.
  • Сбой в Windows или Word. Перезагрузить компьютер, если не помогает — обратиться к администратору.

При выгрузке в Word появляется ошибка «Неверно указана единица измерения»

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

Для устранения ошибки: открываем Microsoft Office Word далее Сервис — Настройка — Команды — Упорядочить команды — выбрать Панель инструментов — в ней Форматирование — в Элементах встать на Межстрочный интервал — Удалить — Закрыть — Закрыть — закрыть Microsoft Office Word.

Процедура настройки шаблона

  1. Зарегистрироваться АДМИНИСТРАТОРОМ.
  2. Сохранить копию имеющегося шаблона.
  3. Запустить АвтоПарк.
  4. Установить режим разработки.
  5. Выполнить пункт АвтоПарка, который в обычном режиме подготавливает либо печатает отчётную форму.
  6. Внести требуемые изменения в шаблон.
  7. Сохранить шаблон.
  8. Повторить пункты 5 — 7 пока не будет достигнуто желаемое.
  9. Установить режим публикации и выбрать нужный шаблон.
  10. Установить обычный режим.
  11. Зарегистрироваться обычным пользователем.
Примечания
  • Перед тем, как начать работу с шаблоном в режиме публикации или разработки, программе необходимо снять с файла шаблона атрибут «только для чтения». Если шаблон в этот момент используется другим пользователем, появляется сообщение «Ошибка при установке атрибутов файла». В этом случае можно попробовать подождать некоторое время и нажать «повторить», так как есть вероятность, что файл быстро освободится.
    Такое же сообщение может возникнуть, когда после публикации шаблона программа пытается установить атрибут «только для чтения». На этом этапе работы программы шаблон уже полностью подготовлен, и отмена не вернёт его в исходное состояние. Чтобы установить атрибут «только для чтения» в этом случае можно либо воспользоваться обычными средствами, либо повторно выполнить процедуру публикации шаблона.
  • Если не существует каталог DOTBY_USER, создать его.
    Если этот каталог не указан в RED-файле, указать его (должен быть самым первым в перечне месте хранения):
*.dot = dotby_user;dottmp_lib;dot;$_libdotap;$_libdotsys.

Автор bestname, 29 апр 2016, 15:35

0 Пользователей и 1 гость просматривают эту тему.

Здравствуйте. Формирую word файл. Никак не могу добавить строки из табличной части документа в word. Все получается, только если в ТЧ документа одна строка. Если больше, то получаю ошибку:

{Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(3000)}: Ошибка при вызове метода контекста (Cell): Произошла исключительная ситуация (Microsoft Word): Запрашиваемый номер семейства не существует

Я так понимаю, что я обращаюсь к ячейке еще не созданной строки. Но я вроде как ее создаю. Наверное неправильно создаю.


        Договор = ПолучитьМакет("Макет");
MSWord = Договор.Получить();

Попытка
Doc = MSWord.Application.Documents(1);
Doc.Activate();

//Товары
ТекСтрока = ЭлементыФормы.Товары.ТекущаяСтрока;
Для Каждого ТекСтрока Из Товары Цикл

    НомерСтроки = ТекСтрока.НомерСтроки + 1;
    //Добавляем новую строку таблицы
    Doc.Tables(2).Rows.Add();

    Doc.Tables(2).Cell(НомерСтроки, 1).Range.Text = ТекСтрока.НомерСтроки;
    Doc.Tables(2).Cell(НомерСтроки, 2).Range.Text = ТекСтрока.Номенклатура.НаименованиеПолное;
    Doc.Tables(2).Cell(НомерСтроки, 3).Range.Text = ТекСтрока.ЕдиницаИзмерения.Наименование;
    Doc.Tables(2).Cell(НомерСтроки, 4).Range.Text = ТекСтрока.Количество;
    Doc.Tables(2).Cell(НомерСтроки, 5).Range.Text = ТекСтрока.Цена;
    Doc.Tables(2).Cell(НомерСтроки, 6).Range.Text = ТекСтрока.Сумма;
КонецЦикла;

    MSWord.Application.Visible = Истина;
    MSWord.Activate();
Исключение
    Сообщить(ОписаниеОшибки());
    MSWord.Application.Quit();   
КонецПопытки;   

возврат 0;

Что я делаю неправильно?


Doc.Tables(2).Cell(НомерСтроки,)<—- нет такого элемента

Добавлено: 29 апр 2016, 15:50


т.е. по данному номеру строки не может найти элемент

Добавлено: 29 апр 2016, 15:54


по идеи Doc.Tables(2).Rows.Add() должно вернуть вам строку

Помогли — Скажи спасибо! Решил сам — поделись решением!
:)


Короче я понял. Строка добавляется в конце таблицы. А мне нужно с определенного места(со второй строки). Я так понимаю, что в

Doc.Tables(2).Rows.Add(); мне нужно передать параметры?
Пишу
Doc.Tables(2).Rows.Add(2);
{Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(2993)}: Ошибка при вызове метода контекста (Add): Произошла исключительная ситуация (Microsoft Word): Неверный параметр

Вот как выглядит макет моей таблицы:

Добавлено: 05 мая 2016, 11:54


Вообщем получилось, строка добавилась после второй строки. Но добавилась, когда я снял объединение ячеек. Вот такая команда:


Doc.Tables(2).Rows(2).Select();
MSWord.Application.Selection.InsertRowsBelow(1);

Но поскольку у меня некоторые ячейки объеденены, то вылазит ошибка:

{Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(2994)}: Ошибка при вызове метода контекста (Rows): Произошла исключительная ситуация (Microsoft Word): Отсутствует доступ к отдельным строкам, поскольку таблица имеет ячейки, объединенные по вертикали

Может кто подскажет?


Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста range
  • Ошибка при вызове метода контекста properties
  • Ошибка при вызове метода контекста connectagent
  • Ошибка при вызове метода контекста previewfile1c
  • Ошибка при вызове метода контекста connect произошла исключительная ситуация