8.х Создание отчета Active document

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Fira, 11 сен 2012.

  1. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    Доброе утро. мне нужно просто вставить текст в вордовский отчет, программно. когда я запускаю обработчик , выдает ошибку "Произошла исключительная ситуация (Microsoft Word): Слишком длинный строковый параметр". Смотрела в других форумах предлагают разбить на несколько. Но как же так неужели нет другого выхода? помогите пожалуйста.
  2. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а вы код то приведите, собственно где ошибка....мы не телепаты...
  3. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    Код:
    Если ЭтотОбъект.НаименованиеОрганизации.ИНН="12356889" 
    тогда
    первое=ЭтотОбъект.первое;
    ЭтотОбъект.первое ="так много строчек должно быть тут. очень очень много............";
    иначе
    если
    ЭтотОбъект.НаименованиеОрганизации.ИНН="45454689"	 тогда
    второе=ЭтотОбъект.второе;
    ЭтотОбъект.второе ="еще больше , намного больше строчек должно быть тут";
    иначе
    если ЭтотОбъект.НаименованиеОрганизации.ИНН="12246546578"	 тогда
    третье=ЭтотОбъект.третье;
    ЭтотОбъект.третье ="а можно покороче";
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    
    вот на это и он ругается. говорит что очень много строк. не знаю как тут обойти его
  4. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а ЭтотОб'ект это у вас что?
  5. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    форма. на ней элемент поля ввода, где я выбираю контрагента на одном , а на втором организацию. мне нужно договор автоматизировать, чтобы реквизиты не заполнять по новой . вот. и вот тут и проблемка возникла, дело в том что у этих трех организаций два пункта в договоре отличаются и я хотела это в программном коде вставить. ну там приблизительно четыре строки получается (если на формате а4 сметреть), и вот этот небольшой кусок когда вставляю, при запуске ругается
  6. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    дак это получается у вас ругается на заполнение реквизитов формы, а не ворда?
  7. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    да нет же. он нормально работает и отображает реквизиты на документе. но когда я вставляю в коде

    ЭтотОбъект.первое ="так много строчек должно быть тут. очень очень много............";
    после равно больше строчек . он дает такую ошибку
    "Произошла исключительная ситуация (Microsoft Word): Слишком длинный строковый параметр"
    если после равно там у меня нитак много слов, то нормально не ругается, а еси там скажем три строчки копирую и вставляю то ругается.
  8. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    чет не понимаю я вас....
  9. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    ну вот смотрите. есть форма, выбираем там контрагента нужного нам и выбираем организацию опять таки, которая нам нужна. контрагентов у нас много, а организаций с которыми работаем три допустим. договора , которые составляются по ним, почти одинаковые, кроме трех или двух пунктов. и вот получается, если мы выбираем одну ораганизацию, я хочу чтобы в договоре вставлялся ЭтотОбъект.первое = "и все что тут находиться". а когда вторую организ, то соответственно этотобъект.второе= "этот кусок текста" и т.д.
  10. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    я одного не понимаю, вы говорите про выгрузку в ворд, а код приводите - заполнение реквизитов формы. Или я чего-то не понимаю, или код не тот...
  11. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    нет код тот, на что он и ругается. и на форме мы видим только организацию наименование + контрагента , а все остальное все данные реквизита выгружается на ворд файл
  12. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    но если вы говорите, что ЭтотОъект - это форма, то конструкция ЭтотОъект.первое - это заполнение реквизита формы, вот тут то я и не понимаю, при чем тут ворд?
  13. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    не знаю. но он ругается на ворд, что слишком большой строковой параметр.
    Код:
    Если не ЭтотОбъект.НаименованиеОрганизации.Пустая()Тогда
    ИНН=ЭтотОбъект.НаименованиеОрганизации.ИНН ;
    КППОрганизации= ЭтотОбъект.НаименованиеОрганизации.КПП;
    ЭтаФорма.Обновить();
    КонецЕсли;
    
    
    Если ЭтотОбъект.НаименованиеОрганизации.ИНН="12356889" 
    тогда
    первое=ЭтотОбъект.первое;
    ЭтотОбъект.первое ="так много строчек должно быть тут. очень очень много............";
    иначе
    если
    ЭтотОбъект.НаименованиеОрганизации.ИНН="45454689"	 тогда
    второе=ЭтотОбъект.второе;
    ЭтотОбъект.второе ="еще больше , намного больше строчек должно быть тут";
    иначе
    если ЭтотОбъект.НаименованиеОрганизации.ИНН="12246546578"	 тогда
    третье=ЭтотОбъект.третье;
    ЭтотОбъект.третье ="а можно покороче";
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    
    
    
    
    Договор = ПолучитьМакет("Макет");
    MSWord = Договор.Получить();
    
    дальше код, чтобы показывал в ворде
  14. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    может я конечно ошибаюсь, то вот эта конструкция
    Код:
     Договор = ПолучитьМакет("Макет");
    это макет обычный, а не документ Ворда...

    З.Ы. чем дальше, тем интереснее...
  15. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    нет, макет называется вордовский файл, который я подгрузила
  16. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    а в описании ошибки случано номера строки нет? скорее всего тот код, который вы привели ниочем не скажет, так как заполнение параметров макета у вас явно далее следует, вот там и ошибка выскакивает.... попробуйте отладчиком поймать...
  17. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    он меня именно на эту и строчку выкидывает. а вообще из за чего это может быть ? скажем причины какие бывают ?
  18. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    а как сделать обнуление значений параметров для макета? то есть значение обнулить и сразу сгенерировать другой
  19. TopicStarter Overlay
    Fira
    Offline

    Fira Опытный в 1С

    Регистрация:
    28 авг 2012
    Сообщения:
    98
    Симпатии:
    0
    Баллы:
    26
    помогите плиззз (((
  20. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    для activeDocument не могу сказать, но для обычного макета действовать можно так
    Код:
    ОбластьМакета.Параметры.Параметр1 = "";
    попробуйте адаптировать под свои нужды

Поделиться этой страницей