Имя: Пароль:
1C
 
Работа с Word и Excel
0 Falex
 
07.04.17
16:07
Здравствуйте. Платформа 8.3.
Задача следующего характера: возможно ли сделать, например, в Excel шаблон (который откроется из режима предприятия). В Excel будут доступны поля базы данных 1С (представления) для заполнения полей-параметров. Также можно заполнить и таблицу, которая затем в 1С можно будет заполнить по алгоритму (число строк переменное).

Есть ли примеры или конфигурации где такое реализовано?
1 Лодырь
 
07.04.17
16:10
Цель то какая?
Организовать ввод данных через Excel? Не совсем понимаю чего хочется достичь в итоге.
2 dezss
 
07.04.17
16:11
(1) +1
(0) Опиши пример того, что хочешь.
3 Falex
 
07.04.17
16:28
Есть документ со своими полями, табличной частью.
Хочу чтобы юзер в режиме 1С сам мог создать шаблон Excel, настроить его заполнение (заполнение из доступных полей документа), произвольное количество таблиц.
"Прикрепить" шаблон к этому документу и при печати открывался Excel с уже заполненными шаблонами.
Причем формулы также бы работали.

Далее юзер смог в открытый документ внести какие-то правки (при необходимости), например, перенести поля, поменять цифры, и закрыть документ Excel: при этом измененный файл сохранится в документе и его можно будет открыть на повторный просмотр.
4 Лодырь
 
07.04.17
16:34
Пример видел например в какой то отраслевой конфе для издательств. Там было заполнение договора по шаблону. В принципе функционал встречающийся.
5 dezss
 
07.04.17
16:38
(3) Интересная тема. Если найдешь решение, напиши сюда, пожалуйста.
6 Лодырь
 
07.04.17
16:45
А чем вам СКД не нравится?
7 Tatitutu
 
07.04.17
16:49
делал примерно такое
1С знает офис,офис - знает 1С
макросы и передача параметров - главное понять итоговое задание
посмотри пример
http://catalog.mista.ru/public/62648/
8 Falex
 
07.04.17
16:55
Будут настраивать пользователи, которые не знают СКД.
9 Махони402
 
07.04.17
17:12
(8) Не взлетит. Пользователи в режиме экселя в процессе "настройки" шаблона грохнут тебе любые маркеры, по которым ты будешь синхронизацию настраивать. А если шаблон не настраиваемый, то проще в табличном документе все сделать и эксель не приплетать.
10 takefive
 
07.04.17
17:40
кусочек кода положу...

    ИмяВременногоФайла = ПолучитьИмяВременногоФайла(Расширение);
    ДанныеФайла = ПолучитьДанныеФайла(Бланк);
    ДанныеФайла.Записать(ИмяВременногоФайла);
    ФлагВключен = "ю";
    ФлагВыключен = "o";
    Шрифт = "Wingdings";

WORD

//Execute(FindText,MatchCase,MatchWholeWord,MatchWildcards,MatchSoundsLike,MatchAllWordForms,Forward,Wrap,Format_,ReplaceWith)
        Word = Новый COMОбъект("Word.Application");
        Word.Documents.Open(ИмяВременногоФайла);
        ДокументWord = Word.ActiveDocument();
        Замена = ДокументWord.Content.Find;
        Для каждого ЭлементСтруктуры Из ЗначенияПолей Цикл
            Ключ = "["+ЭлементСтруктуры.Ключ+"]";
            Значение = ЭлементСтруктуры.Значение;
            ЭтоЧекБокс = Лев(Ключ,5) = "[BOX_";
            Если ЭтоЧекБокс Тогда
                Флаг = ?(Значение = Истина,ФлагВключен,ФлагВыключен);
                Если Замена.Execute(Ключ) Тогда
                    Замена.Replacement.Font.Name = Шрифт;
                    Замена.Execute(Ключ,Ложь,Истина,Ложь,,,Истина,,Истина,Флаг,2);//флажки
                КонецЕсли;
            Иначе
                Замена.Execute(Ключ,Ложь,Истина,Ложь,,,Истина,,Ложь,Значение,2);
            КонецЕсли;
        КонецЦикла;
        ДокументWord.Protect(2,0,"11111");//пароль на редактрование - 11111
        ДокументWord.Save();
        ДокументWord.Close();

EXCEL

    //Replace(What, Replacement, [LookAt], [SearchOrder], [MatchCase], [MatchByte], [SearchFormat], [ReplaceFormat])
        Excel = Новый COMОбъект("Excel.Application");
        Книга = Excel.Workbooks.Open(ИмяВременногоФайла);
        Лист = Книга.WorkSheets(1);
        Для каждого ЭлементСтруктуры Из ЗначенияПолей Цикл
            Ключ = "["+ЭлементСтруктуры.Ключ+"]";
            Значение = ЭлементСтруктуры.Значение;
            ЧекБокс = Лев(Ключ,5) = "[BOX_";
            Замена = Лист.UsedRange.Find(Ключ);
            Если Замена <> Неопределено Тогда
                Если ЧекБокс Тогда
                    Флаг = ?(Значение = Истина,ФлагВключен,ФлагВыключен);
                    Замена.Application.ReplaceFormat.Font.Name = Шрифт;
                    Замена.Replace(Ключ,Флаг,,,Ложь,Ложь,Ложь,Истина);//флажки
                Иначе
                    Замена.Replace(Ключ,Значение);
                КонецЕсли;
            КонецЕсли;
        КонецЦикла;
        Книга.Save();
        Excel.Quit();
11 Falex
 
08.04.17
09:34
"А если шаблон не настраиваемый, то проще в табличном документе все сделать и эксель не приплетать."

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

ЗЫ: а код откуда? ;)
12 Falex
 
08.04.17
17:25
Типа как здесь сделано: https://www.youtube.com/watch?v=-jdetqv5XD8
(можно смотреть, начиная со 2 минуты).
13 Falex
 
08.04.17
17:51
Я так понимаю, что еще такой разработки нет?
Есть типа таких как в Документообороте, но как-то мне кажется все это запутанно будет для пользователя...
14 mistеr
 
08.04.17
18:01
(3) Чего-то неправильного хотят эти пользователи. Сделать в рамках интерфейса 1С все, что им нужно, будет проще (и дешевле!), чем этот онанизм с Экселем туда-сюда.
15 Falex
 
08.04.17
22:26
:)
Посоветуйте тогда как лучше организовать такой механизм настраиваемых шаблонов (с возможностью добавления своих), заполнением данных из объекта и возможностью добавления формул для расчета.

Спасибо.
16 Злопчинский
 
08.04.17
23:00
(15) работать в экселе.
в экселя сосать данные из 1С.
в экселе - пусть творят что хотят.
для использования данных из 1С эксельным пользователям дать набор стандартизированных функций.
.
либо в экселе творят что хотят и за данными обращаются в 1С, либо в 1С ваяем что хотим и выплевывваем в эксель.
.
произвольно и там и там - не взлетит.
.
исли не знаете что хотят в экселя - плюйте в эксель тонны плоских таблиц. пусть ваяют собственные свинтопрульные аппараты
17 mistеr
 
09.04.17
10:06
(15) Смотри, как сделана рег. отчетность.
18 Falex
 
09.04.17
10:14
"Смотри, как сделана рег. отчетность." - не помню чтобы там можно сопоставление в режиме пользователя делать.
19 Falex
 
09.04.17
10:14
В Интернете еще видел какую-то обработку "Конструктор договоров"...
20 Aleksey
 
09.04.17
10:28
(12) В Договорчиках так реализовано

Никаких "встроенных" шаблонов программа не предлагает. Схема работы предполагает, что вы создадите такой шаблон самостоятельно средствами Word, загрузите его в программу, она вставит в шаблон параметры и вы укажете этим параметрам место.

http://catalog.mista.ru/public/457678/
21 mistеr
 
09.04.17
10:29
(18) Придется добавить.
22 mistеr
 
09.04.17
10:30
(18) А вообще вынуждать пользователя делать работу программиста/внедренца — тупиковый путь.
23 Aleksey
 
09.04.17
10:32
БСП тоже так может, по крайне мере в типовой БП 3.0 есть Wordовский шаблон (Cогласие на обработку персональных данных (документ Microsoft Word)) с параметрами "{/v8 Область.НомерДата и т.п.}
24 Gantoha
 
09.04.17
10:32
например средненький договор очень тяжело запрограммировать , так как там ветвлений может быть очень много.
25 Gantoha
 
09.04.17
10:35
я имею ввиду такой договор у которого разделы меняются и приложения в зависимости от того , что в договор попало.
Кстати ..вот учебный центр 1 1с  делает свои договора в ворде копи пастом .. хотя мог бы что нибудь и автоматизировать.
26 Aleksey
 
09.04.17
10:40
(25) Нужно им Договорчики продать, чтобы не мучались
Ошибка? Это не ошибка, это системная функция.