Из 1С записать формулу в ячейке MS EXCEL

Публикация № 61933

Разработка - Обмен данными 1С - Загрузка и выгрузка в Excel

183
Из 1С записать формулу в ячейке MS EXCEL

Часто слышу этот вопрос: "Как сделать, как написать?!" Объяснить сразу мне трудно, поэтому давайте "на пальцах"

Свежий простой пример - рассмотрим, как указать для ячейки формулу:

 Ексель.Cells(1,3).Formula= "=СЦЕПИТЬ(E1;C7)";

Первое, на что хочу обратить внимание - те функции, которые Вы видите визуально в ячейке MS EXCEL для 1С "слегка не знакомы", ей лучше озвучить имя функции на VBA.  А откуда Вы узнаете, как эта функция на VBA называется??? Я Вам расскажу, немного терпения

  • Открываем новую книгу MS EXCEL
  • Идем в меню Сервис - Макрос - Начать запись - Ок (появится маленькое окошко с квадратной кнопкой - его не кое случае не закрывать)
  • Кликаем ячейку "С1" и пишем в ней формулу  =СЦЕПИТЬ(E1;C7)
  • После этого нажимаем на квадратную кнопочку (Мы только что с Вами записали макрос на языке VBA)

Посмотрим что получилось. Идем в меню Сервис - Макрос - Макросы - (там будет в новой книге по умолчанию Макрос1) - выбираем его и нажимаем кнопку "Войти". Поздравляю - мы попали во встроенный редактор VBA (аналог конфигуратора 1С). И что мы видим:

Sub Макрос1()
    Range("C1").Select
    ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[2],R[6]C)"
    Range("C2").Select
End Sub

Теоретически нам отсюда нужно только:

Range("C1").FormulaR1C1 = "=CONCATENATE(RC[2],R[6]C)"

это и будет для 1С =

Cells(1,3).Formula= "=СЦЕПИТЬ(E1;C7)";" "

проверим напишем код на любимом 1С

Процедура Сформировать()
Перем Кат,Шаб;

Ехсел=СоздатьОбъект("Excel.Application");
Книга=Ехсел.Workbooks;
Если ФС.ВыбратьФайл(0,Кат,Шаб,"Выбери файл Еxcel",,"*.xls",)=1 Тогда
     Книга.Open(Шаб+Кат);  
     Ехсел.Range("C1").FormulaR1C1 = "=CONCATENATE(RC[2],R[6]C)";  
     Книга.Close();
     Ехсел="";  
КонецЕсли;
КонецПроцедуры

Все работает!


Немного подумав, Вы поймете, что:

Ехсел.Range("C1").FormulaR1C1 = "=CONCATENATE(RC[2],R[6]C)";

можно заменить на

Ехсел.Cells(1, 3).FormulaR1C1 = "=CONCATENATE(RC[2],R[6]C)";

и результат не изменится, а возможностей прибавится.

В MS EXCEL только амлет нельзя пожарить - возможности его одурманивают.

 

Я рад , что кому-то эта статья пригодилась. Спасибо Вам всем.

И чтобы закрепить материал, напишу задачу (недавно она здесь на портале была озвучена).

Многие делают отчеты и сохраняют в EXCEL... так вот задача стояла в следующем, чтобы при открытии файла у таблицы стоял фильтр с заданными параметрами (пример таблицы на рис.1, а нужно получить (например все товары у которых количество равно 11) рис.2.)

Попробуйте решить сами на языке 1С.

ОТВЕТ:

Ехсел.Range("C5:D5").AutoFilter (); //создаем автофильтр
Ехсел.Range("C5:D5").AutoFilter (2,"11"); //указаваем столбец и значение фильтр


В связи с большим количеством комментариев у данной публикации, решил выложить то, что, по моему мнению, не должно "утонуть" в потоке информации: 

Пост (44) Рассказывает нам где находится файл FUNCS.XLS  - который содержит полезную информацию по формулам EXCEL  - прислал  gaglo

Пост (55) Подарил на ссылку на замечательную Функция по возврату констант EXCEL - прислал JohnyDeath

Пост (59) Добавил ссылку на русскоязычный сайт посвященный EXCEL - прислал an77

Пост (61) Еще одна ссылка на сайт, посвященный работе с макросами

183

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. larisab 159 01.12.09 21:25 Сейчас в теме
А как можно сделать так, чтобы при выгрузке из 1С 8 методом "сохранить как..." в екселе сразу устанавливался формат "по ширине страницы"?
Возможно в екселе 2007 есть галочка, где поставить можно, но что то не могу найти.
ilol64; msadu; +2 Ответить
3. Alltruist 111 02.12.09 02:22 Сейчас в теме
(1) Пользуясь тем же методом что и автор, можно много чего раскопать =).
В екселе есть несколько отличный от 1с способ установки масштаба: количество страниц в ширину и в высоту. Чтоб добиться нужного результата (установки печати по ширине страницы) можно задать одну страницу в ширину и заведомо большое значение в высоту. Например так:

Ехсел=СоздатьОбъект("Excel.Application");
.......................
.......................
Ехсел.ActiveSheet.PageSetup.Orientation = 1; //ориентация
Ехсел.ActiveSheet.PageSetup.PaperSize = 9; //размер бумаги
Ехсел.ActiveSheet.PageSetup.Zoom = False;
Ехсел.ActiveSheet.PageSetup.FitToPagesWide = 1;//страниц в ширину
Ехсел.ActiveSheet.PageSetup.FitToPagesTall = 100;//страниц в высоту
6. larisab 159 02.12.09 08:45 Сейчас в теме
(3) Alltruist, спасибо, конечно, пригодится. Но проблему мою это не решит. Тут не лезу в код, использую встроенную в 1с возможность выгрузки, и в момент открытия в екселе, надо найти где это сделать. В разметке страницы есть опция, но она уже на сформированном листе действует, а мне хотелось до того как. Ну если нельзя, то придется написать выгрузку, и буду очень благодарна автору топика за мастер-класс. Жду развития и продолжения.
72. anri99 05.09.17 11:28 Сейчас в теме
Полезная статья. Добавлю еще пример программного создания макроса в Excel из 1С
xl=CreateObject("Excel.Application");
wb=xl.Workbooks.Add();
xl.VBE.ActiveVBProject.VBComponents(1).CodeModule.AddFromString("public sub Hello" +
РазделительСтрок+ "MsgBox(""Hello World!"")" + РазделительСтрок + "end sub");
wb.SaveAs("Test.xls");
xl.run("ЭтаКнига.Hello");
wb.Close();
xl.quit();
2. msadu 01.12.09 23:01 Сейчас в теме
спасибо вам большое плюсик добавлю с удовольствием
4. MoneG2 27 02.12.09 06:03 Сейчас в теме
вообще, если читать документацию внимательно, можно без зазрения совести писать:
Ехсел.Cells(1, 3).LocalFormula = "=СЦЕПИТЬ(E1;C7)";
decay; Taurus74; vvr908; vodyanoy; Lexus; Boog; JohnyDeath; sarius; Noy; +9 Ответить
8. Tatitutu 3816 02.12.09 09:23 Сейчас в теме
Спасибо за комментарии и отзывы - очень приятно. И правильно Вы заметили - цель этой статьи, не "тупо" дать алгоритм на копипаст
а рассказать , как несложными действиями самому научится находить ответ на нужный вопрос.
Отдельное спасибо (4) MoneG2 , как он правильно указал есть еще одно решение данного вопроса и это показывает и еще раз доказывает , что в программировании - любую задачу, можно решить РАЗНЫМИ способами.

Спасибо (3) Alltruist - за добавление к статье, очень хороший пример.

(6) larisab , как то решал твою "проблему" следующим способом
ручками написать макрос и его в автозагрузку (личную книгу макросов)
он смотрит при открытии файла , если есть определенная метка
например в ячейке "AW" = 1
значит такой формат листа
если 2 то другой
и так до бесконечности...
а при написании кода в 1С , ты помнишь и формируешь таблицу
согласно правилам данного макроса.
и вот теперь ...только пользуясь стандарным методом "Сохранить как..."
в Еxcel у тебе будет все в шоколаде )))
это не панацея это только пример.
(кстати у меня в публикация есть пример создания макроса из 1С)
gunner_Hans; larisab; +2 Ответить
11. larisab 159 02.12.09 09:31 Сейчас в теме
(8) Спасибо! буду учиться писать макросы. Тема очень интересная :!:
44. gaglo 02.12.09 15:06 Сейчас в теме
(4) и (7) заодно: Не корысти ради, а токмо волею пославшей...
- не LocalFormula, а FormulaLocal;
- если нет планов по распространению за границы, то (лучше?) быстрее писать в родной локали, ибо не придется так нудно выяснять, что СЦЕПИТЬ шифруется как CONCATENATE;
- и если кому-то вдруг да придется разбираться со множеством формул, так для перевода локализованных названий функций в оригинальные существует прямо от авторов Екселя секретная книга FUNCS.XLS, спрятанная где-то в недрах типа "X:\Program Files\Microsoft Office\Office12\1049\FUNCS.XLS", и там все-все имена расписаны: откроешь её, и сразу можно узнать, что ОКРУГЛТ - это MROUND и тому подобное



;
nekit_rdx; Slypower; bow; freeek; Dolly_EV; lushka; fisherboy; hotey; larisab; Alltruist; JohnyDeath; Tatitutu; +12 Ответить
45. Tatitutu 3816 02.12.09 15:11 Сейчас в теме
+(44) Program Files\Microsoft Office\OFFICE11\1049 - для 2003 Офиса

852 - функции

а еще красота в том, что можно самому из 1С написать функцию и уже в ячейках ссылаться на нее. и она будет доступна в меню -вставка -функция- пользовательские
56. ZERO_ 63 03.12.09 12:29 Сейчас в теме
(45)
852 - функции

Ну, если быть точным, то 851. :D
46. ilp06 02.12.09 15:16 Сейчас в теме
(44)

если нет планов по распространению за границы

для этого совсем необязательно куда-либо за рубеж выезжать.
достаточно чтобы сервер стоял не русский, а ваш код выполнился на сервере. или офис был не русский. частая ситуация.
а ещё проблемы с переносом кода в оупен-офис.
Tatitutu; +1 Ответить
50. gaglo 03.12.09 08:59 Сейчас в теме
(46) "достаточно чтобы сервер стоял не русский, а ваш код выполнился на сервере. или офис был не русский. частая ситуация" - Ох! Сочувствую, если для вас это частая ситуация. Но - по-моему - это лишь когда админ ненавидит локализованные версии чего бы то ни было, и ставит всё везде аглицкое. (Я о таких админах только слыхал...)
Вот ОпенОффис - это да, этот, видимо, может понимать или не понимать разные функции саавсем по-разному; но с ним не пришлось мне работать.

(45) Буквоедство я тоже люблю. Ну так сложилось, у меня лично есть и OFFICE11, и OFFICE12, и там и там есть FUNCS.XLS, и вообще он был в соответствующей папке со времен Офиса 97.

(47) и (49) - константы быстрее всего смотреть из редактора VBA, но без всякого F2 и поиска, а правой кнопкой по имени константы и выбрать Quick Info...
А БОЛЬШОЙ список внутренних констант находится в справке Excel: для Офиса 2003: F1 - Оглавление - Microsoft Excell Visual Basic Reference - Enumerations - Microsoft Excell Constants, вверху справа жмакнуть "Показать все" и смотреть все, смотреть, смотреть... Вот, правда, пояснений там нет. Да! И еще надо, чтоб при установке Офиса справку по VBA тоже установили.
58. ZERO_ 63 03.12.09 12:41 Сейчас в теме
(46)
а ещё проблемы с переносом кода в оупен-офис.

при работе из 1с с ОО итак есть проблемы (одинэсный код для Екселя и ОО несколько отличается!) Поэтому, например, когда я писал обработку, которая должна была работать и там и сям, приходилось проверять на установленность екселя на компе.

(48)
Надо искать книжки. Посоветуйте.

Лично мне понравилось скрещивать 1с с другими системами, всвязи с этим пригодилась книга А.Михайлова "1С предприятие системное программирование".
5. mangust_AT 02.12.09 08:30 Сейчас в теме
Спасибо за раскопки! Помню, нужно было, но не докопался. +
16. D9ID9I_SaIIIa 02.12.09 09:48 Сейчас в теме
Все вопросы по поводу формул в excele у меня ещё в 15.26 вчера исчезли
http://www.infostart.ru/forum/messages/forum9/topic29462/message330677/#message330677 (5)
Но всё равно + :D
7. ilp06 02.12.09 09:18 Сейчас в теме
Ехсел.Cells(1, 3).LocalFormula = "=СЦЕПИТЬ(E1;C7)";

работать это будет только с русской локалью.

Ехсел.Cells(1, 3).FormulaR1C1 = "=CONCATENATE(RC[2],R[6]C)";

будет работать всегда и везде.
softcreator; MyNameIs; Tatitutu; +3 Ответить
9. JohnyDeath 294 02.12.09 09:26 Сейчас в теме
А у меня другой вопрос. Чем отличаются свойства "FormulaR1C1", "Formula"? (по-моему еще какие-то "Формулы" были)
12. СергейКа 673 02.12.09 09:38 Сейчас в теме
(9) "FormulaR1C1" - предопределяет использование ссылок типа "R1C1". Т.е. в не зависимости от того как у тебя в настройках стоит обозначение ссылок (буквы или цифры). Лучше использовать, так как неоднократно сталкивался с тем, что обработка создающая Экселевский файл прекрасно создавала на одном компе и "спотыкалась" на другом. А вся проблема была только в "цифро-буквенном" обозначении...
ukrin; JohnyDeath; +2 Ответить
14. JohnyDeath 294 02.12.09 09:41 Сейчас в теме
(12) Спасибо. Вопрос (13) снимается
15. СергейКа 673 02.12.09 09:44 Сейчас в теме
В дополнение к (12):
Для уже ранее созданного файла не имеет значение, какая формула стоит. Но вот при создании из 1С файла Эксель локальные настройки бывают критичны...
10. ilp06 02.12.09 09:30 Сейчас в теме
А у меня другой вопрос. Чем отличаются свойства "FormulaR1C1", "Formula"? (по-моему еще какие-то "Формулы" были)

R1C1 - вот этим и отличается :D
тип ссылок это.
13. JohnyDeath 294 02.12.09 09:40 Сейчас в теме
(10) а как-нибудь по подробнее про эти типы ссылок можно?
17. ZERO_ 63 02.12.09 09:59 Сейчас в теме
Лично я редко использую Ексель, еще реже Ексель+1С. Но, Ексель - поистине мат. комбайн :D Например, можно встроенными функциями решать задачи оптимизации (без долгого и трудного написания кода на 1с), в Екселе есть прекрасный поиск решения! - Для решения оптимизационных задач, задач рассчета з/п - сам лично его применял.
Tatitutu; +1 Ответить
18. Tatitutu 3816 02.12.09 10:19 Сейчас в теме
кому будет интересно по работе с VBA MS EXCEL
посмотрите вложенный файл
называется "Справка-расчет денежной компенсации за вещевое имущество"
этот программа на макросах была написана " в окопе, на сапоге убитого командира.." во время бурной молодости и славной службы в ВС РФ.
и не поверите заняла почетное 3-е место в конкурсе Microsoft Office Extensions в 2003 г. (подарили полный набор офиса 2003 на 18 компакт дисках, сертифакт, пресса....вообщем приятно было)
Выбор пал (а это был 2001 год на EXCEL, только из-за доступности для военнослужащих т.к. про 1С ...ну вообщем вы поняли)

Прикрепленные файлы:
Справка-расчёт.zip
annak2980; larisab; D9ID9I_SaIIIa; +3 Ответить
19. СЫРОЖА 02.12.09 11:02 Сейчас в теме
На сладкое...
К последней фразе поста автора... И к наступающему... :D
Если 1С считать (а оно так и есть по сути) надстройкой на экселем,
то мы имеем воплощенную мечту идиота, которая выражается тостом:
"За то чтобы ваши желания охренели бы перед вашими возможностями!"

20. Noy 1062 02.12.09 11:46 Сейчас в теме
Заметка полезная, но количество плюсов говорит только о том, что подавляющее большинство программистов ленится просто погуглить (я уж молчу про чтение мануалов или спецлитературы).
Трактор; venger; +2 Ответить
21. venger 2086 02.12.09 11:47 Сейчас в теме
(20) Скорее о том, что с Excel вообще толком не знакомы;-)
larisab; D!m; Tatitutu; +3 Ответить
22. Tatitutu 3816 02.12.09 12:05 Сейчас в теме
(22) по оценке самих специалистов MS Oficce
среднестатический пользователь EXCEl использует его возможности только на 5-7% . А возможности его безграничны.

(20) не завидуй плюсам данной публикации - зачем гуглить (человеку нужно уходить с сайта) , если все можно будет найте на родном http://infostart.ru - это же ОГРОМНАЯ КОПИЛКА ЗНАНИЙ и ОПЫТА.

ситуация , когда начинайщий программист (да и не только ) тупо скопипастил какую либу функцию или процедуру и даже не разобрался что она делает и КАК ОНА это делает (работает и работает)- думаю в пример приводить не стоит.
А вот когда человек сам доходит до этого, сам нашел и разобрался, как найти , как научится - это намного ДОРОЖЕ любого ПЛЮСА, это плюс в ЕГО копилку знания и опыта. Вот цель этой статьи.
23. Noy 1062 02.12.09 12:22 Сейчас в теме
(22) Ты меня не так понял - никаких претензий к твоей заметке я не имею, и уж тем более плюсам не завидую.
Я просто отметил весьма быстрый прирост плюсов и сделал вывод, которым и поделился.
Tatitutu; +1 Ответить
24. larisab 159 02.12.09 12:27 Сейчас в теме
(23) Да когда екселем заниматься было, 1С с их ЖК и пр. весь мозг съел
25. Трактор 1191 02.12.09 12:33 Сейчас в теме
(22) Однако если плюсАми меряться , то Noy круче чем Tatitutu. :-)
А заметка действительно, сомнительная. С тем же успехом можно и другие, не менее очевидные вещи публиковать.
26. Арчибальд 2708 02.12.09 12:41 Сейчас в теме
(25) Вот меряться не надо. Линейки с капканами бывают :D
Alltruist; Трактор; Noy; Tatitutu; +4 Ответить
27. Tatitutu 3816 02.12.09 12:46 Сейчас в теме
(25) К чему ты это написал ? кто такой Noy и его работы - я прекрасно знаю - и уважаю его и его мнение , как и каждого участника нашего сообщества.

хотелось сказать, но думаю , не достаточно правильно смогу сформулировать свою мысль ....
- самый ДОРОГОЙ это первый ПЛЮС и самый горький это первый МИНУС
(но полюбому это ОПЫТ набранный тобой, ты учишся, ты начинаешь понимать, вникать, перенимать азы общения )

знаешь анекдот:
Вовочка папе:
- пап, мы сегодня кружочки в классе рисовали, и у меня
лучше всех получился. Это потому, что я сын нового русского ?
- да, сынок !
- пап, а на переменке с мальчишками в туалете ....письками мерялись, это потому что я сын нового русского ?
- да, сынок и не только, ведь тебе уже 22 годика.


А мерять плюсами людей - это в корне НЕПРАВИЛЬНО , а тебе по твоей же ОЦЕНКЕ - нарушаешь суббординацию. Было бы у тебя плюсов больше, чем у Noy вот тогда бы и сравнивал. Надеюсь ты меня услышал.
32. Tatitutu 3816 02.12.09 13:16 Сейчас в теме
я добавил к статье пример задачи (ЗАДАЧА №1 и ответ к ней, но он под паролем ) специально для поста (25)
33. Noy 1062 02.12.09 13:23 Сейчас в теме
(32) Ты же сам плюсанул пост (26), а теперь начинаешь мерятся?

Прям как дети малые.
34. Tatitutu 3816 02.12.09 13:28 Сейчас в теме
(33) :o нет я не мерится собрался, вернее даже и не собирался. А как порядочный преподователь к статье - выложил "домашнее" задание.
35. Трактор 1191 02.12.09 13:31 Сейчас в теме
(32) Задача мне неинтересна. Как и процесс мерянья плюсами. А вот люди, меряющиеся интересны :-)
Пошёл за кукурузой.
36. Noy 1062 02.12.09 13:35 Сейчас в теме
38. Tatitutu 3816 02.12.09 13:38 Сейчас в теме
(35) Извини, (33) исправил шапку - согласен так будет лучше...пообедал жизнь наладилась :D
28. larisab 159 02.12.09 12:54 Сейчас в теме
самый ДОРОГОЙ это первый ПЛЮС

Мой!
Я бы сто плюсов поставила за это:
этот программа на макросах была написана " в окопе, на сапоге убитого командира.." во время бурной молодости и славной службы в ВС РФ.

:D :D :D
29. msadu 02.12.09 12:56 Сейчас в теме
Вопрос похожий но не совсем Можеть кто поможет:
нужно также Из 1С записать состояние группы: "Разгруппировать"
VBA выглядеть так :
ActiveSheet.Outline.ShowLevels RowLevels:=0, ColumnLevels:=1

30. Tatitutu 3816 02.12.09 13:02 Сейчас в теме
(29) не вопрос. Подожди минут 20 напишу прямо здесь . Обед сейчас (война - войной, а обед по распорядку (с))
39. Tatitutu 3816 02.12.09 13:43 Сейчас в теме
31. msadu 02.12.09 13:03 Сейчас в теме
продолжение [29]
ф=Ексель.Range(Область).Select;
ф=Ексель.Selection.Columns.Group;
а В Ексель итак-то оказывается группа откроется раскрытым, мне наоборот надо закрыть группу при открытии
37. levran 199 02.12.09 13:35 Сейчас в теме
40. msadu 02.12.09 14:41 Сейчас в теме
спасибо большое, все ОК. Второй плюс не получается извени брат. Тебе буду знать знатока по 1С+Excel. Удачи тебе ВО ВСЕМ!
41. Tatitutu 3816 02.12.09 14:48 Сейчас в теме
(40) я очень рад , что тебе это помогло ! Спасибо за комплимент и не нужно извинений.
я напишу тут ответ на твой вопрос.

вот строка кода которая сделает все группировки при открытии документа "Закрытыми" см. задачу в (29) и (31)

Ехсел.ActiveSheet.Outline.ShowLevels(1,1);


Метод Outline

ShowLevels(,)
Синтаксис:
ShowLevels(RowLevels, ColumnLevels)
Параметры:
<RowLevels> - VT_VARIANT
<ColumnLevels> - VT_VARIANT
42. Трактор 1191 02.12.09 14:49 Сейчас в теме
Меня всегда терзают сомнения стоит ли публиковать что-то. Эта публикация подтолкнула опубликовать своё знание, столь же очевидное мне, но, возможно, новое для других. http://infostart.ru/public/62030/
Однако сомнения остались. Не превратится ли Инфостарт в мусорку для специалистов? Ведь и эта публикация и моя довольно очевидны...
43. Tatitutu 3816 02.12.09 15:01 Сейчас в теме
(43) Я тебе ответил , там куда ты послал.
"Немножко души и из под клавиш польется музыка...,а не голые ноты"
47. DarkAn 899 02.12.09 23:16 Сейчас в теме
Автор молодец! Сам пользуюсь таким же способом :D
Так же хочу заметить, что Excel часто использует свои встроенные константы, которые имеют числовой тип и порой бывает интересно, а чему равна та или иная переменная, например:


Range("E4").Select
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Показать


и так часто пишет конструктор макросов, так вот чтоб узнать чему равны
"xlGeneral", "xlCenter" и "xlContext"


достаточно в том же макросе VBA написать
msgbox(xlGeneral), msgbox(xlCenter) или msgbox(xlContext)

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

Если кому интересно в моей обработке я формирую бланк табеля Т-13 в Еxcel из , http://infostart.ru/public/19759/ , в данной обработке можно увидеть как в Excel создаются и рисуются таблицы, как формируются списки для выбора элемента, как описывается "условное форматирование", а так же имеется БОЛЬШОЙ список внутренних констант (за который надо благодарить не меня, а др. человека, увидел в чужой обработке и взял на вооружение) и все это в Excel из
Tatitutu; +1 Ответить
49. Noy 1062 03.12.09 08:14 Сейчас в теме
(47) Константы проще смотреть в редакторе ВБА - просто жмешь F2, там поиск...
55. JohnyDeath 294 03.12.09 10:08 Сейчас в теме
(47), (49) а я себе вот такую функцию в глобальник (точнее в класс) запихал и забыл. Чего и всем советую.
Alltruist; gaglo; Tatitutu; Noy; +4 Ответить
48. larisab 159 02.12.09 23:30 Сейчас в теме
Ведь и эта публикация и моя довольно очевидны...

Да уж, очевидны... попробовала я проделать все это в екселе 2007, ужос... ничего не получается, не дает той строчки
ActiveCell.FormulaR1C1 = "=CONCATENATE(RC[2],R[6]C)"
Range("C2").Select
только первые две.
Каким то чудом открылась справка-расчет. В маленьком окошке. Куча листов, смотреть тяжко, так как они еще как то свернуты, видны только шапки. Стало страшно. По моему, это освоить так просто слету невозможно.
Надо искать книжки. Посоветуйте.
52. gaglo 03.12.09 09:33 Сейчас в теме
(48) Антон Орлов - "VBA для тех, кто любит думать". Очень доступно внедряет в сознание читателя идейные основы VBA, правда, изложено почти все на примере WORD, но он же от EXCEL отличается только объектной моделью. А для начала - самое то. ИМХО.
Если прочесть и понять, то можно будет легко выбрать себе вторую книгу, уже специально по EXCEL - просмотрев страниц с десяток. Ну или решить, что никакой больше книги по VBA уже и не надо.
51. maloi_a 03.12.09 09:25 Сейчас в теме
Позвольте и мне сделать несколько замечаний.
1. В 1С процедуру необходимо добавить оператор:
Перем Ехсел,Книга;
2. Ехсел.Range("C1").FormulaR1C1 = "=CONCATENATE(RC[2],R[6]C)";
я бы поменял на
Ехсел.Range("C1").FormulaR1C1 = "=RC[2] & R[6]C";
53. Tatitutu 3816 03.12.09 09:35 Сейчас в теме
так не взлетит:

Ехсел.Range("C1").FormulaR1C1 = "=RC[2] & R[6]C";

будет ругаться на лишние пробелы

Ехсел.Range("C1").FormulaR1C1 = "=RC[2]&R[6]C";

тоже как вариант (но именно этой функции)
57. maloi_a 03.12.09 12:35 Сейчас в теме
(53) Извиняюсь, Вы не правы.
Хоть "=RC[2] & R[6]C";
хоть "=RC[2]&R[6]C";
хоть "=RC[2]& R[6]C"; и "=RC[2]& R[6]C";
проходит без проблем.
59. an77 223 03.12.09 15:14 Сейчас в теме
Всем, кому интересна работа с Excel, советую
http://planetaexcel.ru/index.php
лучший русскоязычный сайт по теме Excel
pavlo; Dolly_EV; ILM; larisab; Tatitutu; +5 Ответить
60. slige 35 03.12.09 20:40 Сейчас в теме
Огромный "+", надо бывает, но очень трудно найти :idea:
Tatitutu; +1 Ответить
61. Tatitutu 3816 04.12.09 14:06 Сейчас в теме
Вот еще очень хороший и поучительный раздел по работе с Макросами
http://msoffice.nm.ru/faq/macros.htm
gunner_Hans; larisab; +2 Ответить
62. Tatitutu 3816 04.12.09 14:29 Сейчас в теме
Описание русском языке Лист рабочей книги Excel
объекты и метоты
http://cadmium.ru/content/view/1157/46/
mdzen; larisab; Трактор; +3 Ответить
63. annak2980 05.12.09 01:29 Сейчас в теме
Большое количество плюсов говорит еще о том, что статья написана грамотно и понятно, с иллюстрациями и активными комментариями и рекомендациями автора онлайн.
Tatitutu; +1 Ответить
64. Squared 05.12.09 22:52 Сейчас в теме
Молодец, полезная информация... ;)
65. gerasimovaol@rambler.ru 95 10.12.09 21:49 Сейчас в теме
Здравствуйте!
А как сделать файл Excel с группировками.Задача такова:
отчет для экономистов по затратам-укрупненным , расшифрованным бухгалтерскими. Как бы в excel передать группировку строк.
Если подскажете, то спасибо заранее!
66. Душелов 11.12.09 00:01 Сейчас в теме
(65) Сформировать в 1С печатную форму с группировкой строк и сохранить ее в формате xls
67. Tatitutu 3816 11.12.09 09:34 Сейчас в теме
(65) Я думаю речь и идет немного о другом (пример на картинке)

могу Вам предложить два варианта :
1. Сразу формируете файл Excel
(не универсально под каждый отчет нужно делать)
2. Обычным спосом формируете отчет в 1С
(но нужен будет файл с макросом в личной книге)
в отчете на нужных группировках делаете скрытую метку
а при открытии макрос обрабатывает согласно правилам ,удаляет метки и сохраняет. Все предельно просто.
Прикрепленные файлы:
68. SiAl 72 11.12.09 10:52 Сейчас в теме
Советую что-нибудь аналогичное по OpenCalc написать.
69. AntonDr 11.08.16 07:52 Сейчас в теме
у меня без Книга.Save() не заработало
70. Alex_Alex 30.11.16 09:39 Сейчас в теме
Здравствуйте!
У меня проблема такая: Формулы в ячейку записываются, но вычисляются только после того, как 2 раза кликну на ячейке и нажму Enter. Подскажите, пжста, как решить.
71. krunm 07.12.16 13:58 Сейчас в теме
(70) Добрый день, тоже столкнулся с подобной проблемой, у Вас решилось?
Оставьте свое сообщение

См. также

Использование классов .Net в 1С для новичков 147

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент Универсальные функции

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    62711    Serginio    104       

Экспорт нескольких MXL таблиц в один XLS файл, на отдельные листы. Простой алгоритм 20

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Статья посвящена распространённому вопросу - как сохранить несколько таблиц (отчетов) в формате MXL, с которым работает 1С, на отдельные листы одного Excel файла. Освещается простой алгоритм решения проблемы штатными средствами, без использования внешних модулей и библиотек (не относящихся к 1С и Excel).

23.11.2015    13929    etmarket    14       

Процедура расшифровки ячейки таблицы в отчетах 1С 7.7 11

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Практика программирования Универсальные функции

Хочу поделиться с вами универсальной процедурой для расшифровки ячеек печатной формы отчетов в 1С 7.7.

24.09.2015    13757    Anzhey    13       

Хитрости сохранения табличного документа в Excel для дальнейшей работы с ним 78

Статья Программист Нет файла v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Все пользователи 1С всех версий (начиная с 7-й) сталкиваются с проблемой нормальной работы с данными, сохраненными в Excel файл. Есть некоторые хитрости, которые позволяют облегчить работу с сохраненными данными из 1С в формат Excel.

16.01.2015    70768    shmellevich    35       

Получение характеристик и управление текущим процессом 1С на основе WMI 36

Статья Программист Нет файла v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Универсальные функции

Функционал для работы из 1С с текущим процессом класса Win32_Process. Пример получает текущее значение ОЗУ занятое процессом 1С. По описанной методике можно получать значения пиковых нагрузок на ОЗУ, время запуска текущей сессии 1С с точностью до миллисекунд. Определять загрузку активного ядра процессом и даже поменять приоритет самого процесса.

09.07.2012    18961    dusha0020    8       

Определение формата ячейки Excel из 1С 9

Статья Системный администратор Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Загрузка и выгрузка в Excel

Перенося данные из таблиц Эксель в 1С, я заметил что некоторые ячейки с содержимым вида "50*10" в 1С переносятся не в таком же виде, а просто, например, цифрой 50. Все дело в формате ячейки!

21.01.2012    17096    griff19    8       

Хитрость. Использование БУЛЕВО при OLE обмене/подключении из 7.7 к 8 17

Статья Системный администратор Программист Нет файла v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Перенос данных из 1С7.7 в 1C8.X Универсальные функции

Как известно, при OLE обмене доступны только типы СТРОКА, ЧИСЛО, ДАТА. А вот БУЛЕВО (ИСТИНА, ЛОЖЬ) использовать при подключении из 7.7 к 8 не получается. Как же быть? Есть хитрость, как использовать тип булево в семерке при обмене с 1С8! :)

28.09.2011    14041    bsturtle    9       

Быстрый поиск подчиненного документа, с помощью прямого запроса 1

Статья Программист Нет файла openconf 1cv7.md Россия Бесплатно (free) Практика программирования Универсальные функции

При ситуации, когда необходимо проверить, есть ли у документа подчиненный документ, конкретного вида или нет, если есть, вывести на экран, в этой ситуации будет полезна следующая функция глобального модуля. Работает только в SQL версии и при установленной внешней компоненте 1С++ !

26.05.2011    11476    Vix    1       

Посчитать людей по XML-файлам, выгруженным для ПФ 2010 7

Инструменты и обработки Программист Бухгалтер Внешняя обработка (ert,epf) v77::Расчет 1С7:ЗиК БУ НУ Windows Управление персоналом (HRM) ФОМС, ПФ, ФСС Бесплатно (free) Обмен через XML Универсальные функции

Обработка считает и выводит людей, которые находятся в xml-файлах для пенсионного фонда. Также может служить "рыбой" для дополнительной обработки данных в файлах пенсионного фонда

24.01.2011    10388    81    kserdyukov    1       

Универсальный фильтр 8

Инструменты и обработки Программист Внешняя обработка (ert,epf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Бесплатно (free) Универсальные функции

Удобный фильтр. Нет необходимости вешать на форму N-ое количество списков значений.

08.07.2010    8722    115    ShEvOvIcH    8       

Мьютексы в 1С 7.7 10

Статья Программист Нет файла v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Бесплатно (free) Файловые протоколы обмена, FTP Универсальные функции

Существует ряд задач, которые требуют строго последовательного исполнения. Чаще всего это возникает при многопоточном программировании, в этом случае используются критические секции, но иногда надо синхронизировать и разные приложения - для этого существуют такие объекты ядра операционной системы как Мьютекс-ы. http://ru.wikipedia.org/wiki/Мьютекс В статье рассказывается как можно сделать аналогичный объект средствами 1С v7.7

02.07.2010    12247    Sk0rp    24       

Обработка для поиска Контрагентов 9

Инструменты и обработки Программист Внешняя обработка (ert,epf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Бесплатно (free) Поиск данных Обработка справочников Универсальные функции

Не первая и не последняя.. Не лучшая, и не худшая. Просто вариант поиска контрагентов по нескольким словам или их частям в наименовании.

19.05.2010    8669    108    aka AMIGO    7       

Как получить GUID без v7plus.dll в Предприятии 7.7 10

Статья Программист Нет файла v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free) Практика программирования Универсальные функции

Часто в терминальных сессиях у пользователю Windows не хватает прав на регистрацию v7plus.dll. Соответственно нельзя воспользоваться, например методом СоздатьGUID() класса V7SysInfo.

12.05.2010    12234    prolancer    5       

Алгоритм расчета периодов 3

Статья Программист Нет файла v7.7 1cv7.md Россия Бесплатно (free) Практика программирования Универсальные функции

Вычисление периодов в формате ГГММДД. Вычисление дат по формуле Дата + ГГММДД. Примечание: Даты передаем в виде 'ДД.ММ.ГГГГ', периоды - "ГГ-ММ-ДД". Пользуйтесь.

10.03.2010    8271    arithmometr    1       

Загрузка данных (справочник, документ) через буфер обмена 21

Статья Программист Нет файла v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Первая в мире однокнопочная обработка, мечта юзера! Расскажу, как я кардинально упростил загрузку разнообразных данных из Экселя...

01.03.2010    10756    mikukrnet    12       

Интервал дат прописью 8

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Бесплатно (free) Универсальные функции

Иногда возникает необходимость подсчитать количество дней, недель, месяцев или лет в интервале дат и вывести результат прописью. Обработка предназначена для демонстрации работы функции ПолучитьИнтервалДат(Дата1,Дата2,Период) Используется стандартный файл прописи для рублей. Специально не оптимизировал функции, чтобы каждый мог настроить их под свои требования.

15.02.2010    7761    143    Vlan    3       

Выгрузка в Excel c помощью ADO 13

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

По мотивам http://infostart.ru/public/65045/ Записывает произвольную таблицу значений в файл Эксель, с сохранением типов. Замечание(!!), преобразование нецелого числа зависит от региональных настроек, то есть, если у Вас нерусские ("."), то надо закомментировать строку =СтрЗаменить(

04.02.2010    9250    279    dav405    9       

Загрузка данных из таблицы Excel в два шага 13

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Для того, чтобы каждый раз не писать одно и то же, предлагается идея загружать данные из Excel в два шага.

24.01.2010    7630    424    olgad946    31       

"Троянский конь" или "скрытые" возможности таблиц 1С 135

Статья Программист Нет файла v7.7 1cv7.md Windows Бесплатно (free) Загрузка и выгрузка в Excel

Маленькие хитрости по "взаимодействию" 1С и MS OFFICE или - как создать "троянского" коня. Тайное становится явным. Все нижеизложенное представлено исключительно в поучительных целях, И АВТОР НЕ НЕСЕТ НИКАКОЙ ОТВЕТСТВЕННОСТИ ЗА ПОСЛЕДСТВИЯ, КОТОРЫЕ МОГУТ ПРОИЗОЙТИ ВСЛЕДСТВИЕ ПРОЧТЕНИЯ ПРЕДЛОЖЕННОГО МАТЕРИАЛА.

17.12.2009    21424    Tatitutu    37       

1С Предприятие 7.7 и Mozilla Thunderbird. Отправка писем из командной строки 5

Статья Системный администратор Программист Нет файла v77::ОУ v77::БУ 1cv7.md 1С7:Бух Windows Бесплатно (free) Универсальные функции Email

Клиент захотел чтобы у него из 1С формировались письма с вложениями и отправлялись через Mozilla Thunderbird. Из этого вышла маленькая процедура.

30.11.2009    12472    kasperok    15       

Транслитерация в латиницу 39

Статья Программист Нет файла v7.7 1cv7.md Россия Бесплатно (free) Практика программирования Универсальные функции

При отправке SMSок из 1С столкнулся с тем, что текст отправлялся только латиницей, а данные-то в кириллице. В результате написал функцию перевода текста в латиницу. Может, кому-нибудь пригодится

02.10.2009    24296    yuraer    17       

Простая выгрузка в Excel 19

Статья Программист Бухгалтер Нет файла v77::ОУ v77::БУ v77::Расчет 1cv7.md Россия Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Простой способ получить отчет, форму списка справочника или табличную часть документа в Excel одной кнопкой.

30.09.2009    14688    zaic    13       

Универсальная дозагрузка справочников из файлов Excel 51

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Бесплатно (free) Обработка справочников Загрузка и выгрузка в Excel

Доработанная версия 1С-овской обработки загрузки данных из файлов Excel в справочники 1С. Добавлена возможность не только загружать новые элементы, но и дозаполнять или корректировать существующие справочники. Часто пользуюсь этой обработкой для быстрого полуавтоматического заполнения справочников, а также для переноса данных между различными конфигурациями.

28.09.2009    15418    705    swimdog    20       

Универсальная загрузка любых документов из Excel с использованием нечеткого сравнения по реквизиту типа "Справочник" 35

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Бесплатно (free) Обработка документов Разработка внешних компонент Загрузка и выгрузка в Excel

В помощь антиглобалистам! Для мелких и очень мелких 1С - это дорого (ноутбук стоит дешевле). Поэтому практикуется такой порядок работы: в центральном офисе выгружают в Excel из 1С "Продажный лист"; торгуют и отмечают продажи в файле; приносят в офис вечером файл результата и загружают отчет о продажах за день. Грузить можно и заявки, и перемещения, и поступления, и списания, и счета, и все для ОС, НМА, МБП... была бы табличная часть!

02.09.2009    16842    790    ge_ni    39       

Альтернатива стандартному предупреждению(вопросу) 18

Инструменты и обработки Программист Внешняя обработка (ert,epf) v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Бесплатно (free) Работа с интерфейсом Универсальные функции

Начальство решило, что на предупреждения оформляемые стандартными средствами 1С малоприметны... В результате родилась прикольная штучка... Вывод текста сообщения бАААААльшими буквами, цвет можно задавать. 7 кнопок видимость и текст задаются при вызове Возвращает текст нажатой кнопки..... ВК у нас не применяются...

28.08.2009    9128    59    nikakoy    29       

Тест группировок в Эксель. Для 1С 7.7 9

Инструменты и обработки Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel Работа с интерфейсом

Тестовая выгрузка справочника номенклатуры в Эксель с xls-группировками. (Такие плюсики слева от листа)

12.08.2009    10151    183    dav405    12       

Быстрая выгрузка отчетов в Excel + ярлычки листов 20

Статья Программист Нет файла v77::ОУ v77::БУ v77::Расчет 1cv7.md Windows Бесплатно (free) Практика программирования Загрузка и выгрузка в Excel

Вместо Таб.Показать() используем глобальную функцию - и отчет показывается сразу в Excel в удобоваримом виде...

16.06.2009    16513    mikukrnet    10       

[ОБМЕН] Формирование файла заказа поставщику 8

Инструменты и обработки no Внешняя обработка (ert,epf) v77::ОУ 1С7:ТиС Россия Windows Монитор заказов Бесплатно (free) Печатные формы документов Загрузка и выгрузка в Excel WEB

1C v.7.7 Внешняя печатная форма, предназначена для формирования файла заказа поставщику и выполнения с ним простейших действий. Подключается как внешняя печатная форма к документу "Заказ поставщику". Обработка простая, представляет интерес для начинающих не особо продвинутых программистов 1С.

29.05.2009    14910    184    CheBurator    2       

Создаем сортировку по подразделению в любом документе (Зарплата и Кадры 7.7) 3

Статья Программист Нет файла v77::Расчет 1С7:ЗиК Windows Бесплатно (free) Универсальные функции

Создаем сортировку по подразделению (Зарплата и Кадры 7.7) на примере документа Выплата заработной платы

27.05.2009    10752    Craig    67       

Загрузка номенклатуры из Екселя (полная карточка товара) 12

Инструменты и обработки Бухгалтер Руководитель проекта Внешняя обработка (ert,epf) v77::ОУ 1С7:ТиС Россия Оптовая торговля Учет ТМЦ Бесплатно (free) Обработка справочников Загрузка и выгрузка в Excel

Загрузка из екселя справочника номенклатуры (полностью всей карточки с учетом штрихов и 2-х единиц (базовой и основной))... Загружает в ТИС только Товар/ТМЦ

13.05.2009    8195    132    MikaelW    10       

Обработка "Движение" (Помощник заказа) 3

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v77::БУ 1С7:Бух Россия БУ Windows Учет ТМЦ Бесплатно (free) Обработка справочников Загрузка и выгрузка в Excel

Обработка "Движение" - это практически тот же помощник заказа, только работающий не с наименованиями, а с артикулами, из-за этого он работает гораздо точнее. Изначально обработка писалась для вывода информации о движении товаров по списку артикулов в листе экселя, но в последствии обросла гораздо большим функционалом. В частности, может применяться для изменения реквизитов справочника из экселя.

11.05.2009    1723    145    Nikolaev_AV    4       

Напоминалка дня рождения по ИНН 2

Инструменты и обработки Программист Внешняя обработка (ert,epf) v77::БУ 1cv7.md Украина Windows Бесплатно (free) Разное Универсальные функции

Используя конфигурацию для сельского хозяйства в Украине, понадобилась напоминалка о днях рождения сотрудников. В самой конфигурации не предусмотрено поле "День рождения", но зато есть ИНН, который и был использован для этой цели. Не судите строго, это первая разработка, выложенная мной на Ваш сайт.

01.04.2009    8465    117    stalker    9       

Класс для вывода отчета в Excel 12

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) openconf v77::БУ 1cv7.md Windows Бесплатно (free) Практика программирования Разработка внешних компонент Загрузка и выгрузка в Excel

Класс для вывода отчета в Excel (выводит быстро :) Как-то попал мне, нигде больше не видел, ИМХО очень жизненный при больших отчетах.

10.02.2009    8969    246    babys    1       

Импорт для всех конф семерки! 89

Инструменты и обработки Системный администратор Программист Внешняя обработка (ert,epf) v7.7 1cv7.md Windows Бесплатно (free) Файловые протоколы обмена, FTP Загрузка и выгрузка в Excel 1С7.7<->1C7.7

Переносит любые справочники, документы и т.д. Работаю с ней уже год - все отлично при любом количестве строк.

06.02.2009    13389    1907    floraukraine    21       

[ExcelEditor] Чтение/запись файла Excel напрямую из 1С без Excel (формат 97/2003) 112

Инструменты и обработки Программист Компонента, плагин (dll, vbs,..) v7.7 v8 1cv8.cf 1cv7.md Windows Бесплатно (free) Разработка внешних компонент Загрузка и выгрузка в Excel

Чтение и запись файла Excel напрямую из 1С Компонента читает и редактирует напрямую файл Excel без загрузки самого Excel (формат Microsoft Office 97/2003)

08.01.2009    40325    1195    Душелов    92       

Быстрое сохранение в Excel (автор romix) 8

Инструменты и обработки no Конфигурация (md, cf) v7.7 1cv7.md Windows Бесплатно (free) Разработка внешних компонент Загрузка и выгрузка в Excel Работа с интерфейсом

Помогает быстро сохранить печатные формы в формате Excel. Имеет смысл при сохранении больших отчетов, что обычно занимает немало времени.

25.12.2008    10878    285    kasperok    16