24.07.07 — 18:26
Борюсь с такой вот фигней:
…
Книга = Новый ComОбъект(«Excel.Application»);
Книга.Application.Workbooks.Open(ИмяФайла);
Лист = Книга.Worksheets(1);
Лист.Range(«A1:A10).NumberFormat = «[$$-409]#,##0.00»; //собсно тут и ругается
…
Сама ошибка — «Ошибка при установке значения атрибута контекста (NumberFormat): Произошла исключительная ситуация (Microsoft Office Excel): Нельзя установить свойство NumberFormat класса Range»
Через поиско я понял, что был далеко не одинок в данной проблеме, не раз находил для себя, вроде бы и новое решение, перебивая модуль, надеясь, что щас вот оно заработает, но проблема не решалась, в итоге вылез на такой вот обнадеживающий топик:
http://forum.foxclub.ru/read.php?28,253200,253200,quote=1
Платформа у меня 8.0.18.2
Знает кто вообще, решаема ли эта проблема, и как?
1 — 24.07.07 — 18:28
2 — 24.07.07 — 18:31
не верю!
Синтаксический контроль конструкция из (0) не пройдет.
Лист.Range(«A1:A10).
Это как?
3 — 24.07.07 — 18:42
уважаемый, я это не из рабочего модуля копировал, а просто набросал для примера, чтобы лишь в общем показать о чем реч. За синтаксис сори, а где именно ошибка, я показал…
4 — 24.07.07 — 18:57
Помню глюк с точкой. Вместо точки в 0.00 попробуй запятую.
5 — 24.07.07 — 19:01
Мда, формат таки записался, спасибо уже прогресс
6 — 24.07.07 — 19:03
(5) Спасибо в карман не положишь
7 — 24.07.07 — 19:05
Странно, хотя через те же макросы выдал точку
8 — 24.07.07 — 19:06
(5) самое прикольное, что на другой машине у тебя может и не записаться…
И это зависит от региональных установок и экселя…
P.S. решение этой проблемы есть…
9 — 24.07.07 — 19:06
(7) Фича известная. И давняя. Помницца Бекас никак не мог решение найти.
10 — 24.07.07 — 19:08
(9) так и не нашел? там же все примитивно делается….
11 — 24.07.07 — 19:11
(0)
вот так работает:
WorkBook=Application.WorkBooks.Open(«Z:test.xls»);
Скрипт=Новый COMОбъект(«MSScriptControl.ScriptControl»);
Скрипт.Language = «javascript»;
List = WorkBook.Worksheets(1);
Скрипт.AddObject(«List»,List);
Скрипт.eval(«List.Range(«»A1:A10″»).NumberFormat = «»[$$-409]#,##0.00″»;»);
WorkBook.save();
Application.Quit();
12 — 24.07.07 — 19:18
(9) Про замену точки на запятую я ему сказал, а дальше разобрался он аль нет я не знаю.
ExcelApplication.International?
13 — 24.07.07 — 19:21
Проблема похоже в том, что NumberFormat из 1C срабатывает как NumberFormatLocal
14 — 24.07.07 — 19:37
(13) возможно. У меня были такие подозрения, но решение нашел раньше…
P.S. причем не оязательно точка-запятая…
(11) пристроенный к телеге паровоз…
15 — 24.07.07 — 19:39
(0)
Книга = Новый ComОбъект(«Excel.Application»);
КакБыКнига=Книга.Application.Workbooks.Open(ИмяФайла);
16 — 24.07.07 — 19:50
Ексель.ReferenceStyle=1;
Лист.Range(«A1:A10).NumberFormatLocal = «[$$-409]#,##0.00»;
17 — 24.07.07 — 19:52
Вернее
Ексель.ReferenceStyle=1;
Лист.Range(«A1:A10).NumberFormatLocal = «[$$-409]# ##0,00»;
18 — 24.07.07 — 19:52
(16) А это тут причем???
19 — 24.07.07 — 19:53
(18) см (17)
20 — 24.07.07 — 19:53
+(18) а референсе на всяк случай, если стиль ссылок не тот, то все — пипец
21 — 24.07.07 — 19:53
(19) У него Range() и так срабатывает.
22 — 24.07.07 — 19:55
NumberFormatLocal ничего не меняет.
23 — 24.07.07 — 19:56
(22) меняет, см (17)
24 — 24.07.07 — 19:58
(23) Смотрю, длина строки выросла на 5 символов. Больше ничего не изменилось
Запятая ошибочная убрана в шаблоне, но сработает точно так-же как и NumberFormat
25 — 24.07.07 — 20:00
NS я тебя конечно уважаю, но счас проверю и напишу, все работает, это уж точно, тема была уже далеко не один разок
26 — 24.07.07 — 20:00
см. (8) и (12,13)
27 — 24.07.07 — 20:01
(25) Угу, и так-же всё работает с NumberFormat
28 — 24.07.07 — 20:12
[1C]
//*******************************************
Процедура Сформировать()
Ексель=СоздатьОбъект(«Excel.Application»);
Ексель.ReferenceStyle=1;
Книги=Ексель.Workbooks;
Книга=Книги.Add();
Листы=Книга.Worksheets;
Лист=Листы.item(1);
Ячейки=Лист.Cells;
Диапазон=Ячейки.Range(«A1:A10»);
Диапазон.NumberFormatLocal = «[$$-409]# ##0,00»;
Сообщить(Ячейки.Range(«A1»).NumberFormat);
Сообщить(Ячейки.Range(«A1»).NumberFormatLocal);
Ячейки.Range(«A1»).Value=10245.23;
Ячейки.Range(«A1»).EntireColumn.AutoFit();
Сообщить(Ячейки.Range(«A1»).Text);
Ексель.Visible=-1;
КонецПроцедуры
[/1C]
29 — 24.07.07 — 20:14
Ну и?
А если теперь попробовать
Диапазон.NumberFormat = «[$$-409]# ##0,00»;
30 — 24.07.07 — 20:15
(27) работает, если формат «локаль» задан, как в (17)
31 — 24.07.07 — 20:15
(29) да
32 — 24.07.07 — 20:16
Да, в смысле они работают одинаково?
33 — 24.07.07 — 20:16
(32) ага ))
34 — 24.07.07 — 20:18
Блин, немного поцарапали машину, повезли ремонтировать по Каско.
Там всё сделали, и сказали (показали) что машина крашенная!!!
Не поверили — нам показали целый цех, где КРАСЯТ НОВЫЕ МАШИНЫ.
Говорят 30% новых машин царапанные/битые.
35 — 24.07.07 — 20:21
(34) жизнь прошла стороной ?
36 — 24.07.07 — 20:22
я тут приору увидал, десятка лучче…
37 — 24.07.07 — 20:23
(35) Собирались её продавать — теперь уйдет чуть дешевле
по идее пустяки, но новость меня ошарашила. Там варят и красят новые иномарки ценой 30, 40, 50 Килобаксов. Люди думая что покупают новую машину в салоне, на самом деле покупают битую машину.
38 — 24.07.07 — 20:25
(36) У нас 15-ая, с модным черным бампером. Оказалось что заводские бамперы только черные. В итоге оказалось что купили в салоне машину с битыми и перекрашенными бамперами, и перекрашена одна задняя дверь. Покупали три года назад — наверно сейчас салону уже претензий не предъявить…
39 — 24.07.07 — 20:25
Опечатался — заводские только серые.
40 — 24.07.07 — 20:27
(34) а ты ВИДЕЛ УСЛОВИЯ ПЕРЕВОЗКИ?
Везли спецзаказом тачку в КОНТЕЙНЕРЕ — так эти уроды буржуи ее даже толком не закрепили, один борт протерся до дыр. Меняли дверь и крыло.
В автовозах — что угодно бывает…
P.S. в контейнере тачку не закрепили толком, но фиксаторы максимальных ускорений — ПОСТАВИЛИ!!! Полные уроды. Хорошо, что ни один не сработал. Так что выставили счет на 35 штук баксов за ремонт, шлифовку и покраску…
41 — 24.07.07 — 20:29
(40) Нет, не видел, но теперь знаю
Покупать новую машину резко расхотелось
Torquader
42 — 25.07.07 — 14:54
Excel — загадочная вещь.
Региональные установки для Excel и для 1C могут быть разные.
Кроме того, всё зависит от версии Excel.
P.S. а зачем такой сложный формат нужен ?
This code has been working for ages. I thought maybe I accidently pressed a key but I cannot seem to see it. I suddenly get the error:
Unable to set the NumberFormat property of the Range class
in the below code:
Worksheets("Sheet1").Cells(y + k, x + j).Select
TempValue = Worksheets("Sheet1").Cells(y + k, x + j).Value
Worksheets("Sheet1").Cells(y + k, x + j).NumberFormat = "#,##0" //ERROR HERE
Worksheets("Sheet1").Cells(y + k, x + j).Value = TempValue
asked May 29, 2012 at 14:50
intrigued_66intrigued_66
15.8k51 gold badges118 silver badges186 bronze badges
8
The problem as discovered in Chat was the workbook had more than 64,000 formats because of which the user was getting the «Too many different cell formats» error message in Excel
Solution
Topic: You receive a «Too many different cell formats» error message in Excel
Link: http://support.microsoft.com/kb/213904
QUOTE from the above link
In Microsoft Excel 2007/2010 files may produce the following error message;
Excel found unreadable content in the file
This problem occurs when the workbook contains more than approximately 4,000 different combinations of cell formats in Excel 2003 or 64,000 in Excel 2007 and higher.
Solution as mentioned in the link is to download and run the XLStyesTool
answered May 29, 2012 at 15:35
Siddharth RoutSiddharth Rout
147k17 gold badges206 silver badges250 bronze badges
0
I met with this problem using Fuzzy LookUp AddIn in Office365ProPlus.
After I run FuzzyLookUp only 10 rows of output were generated and this message popped up.
Problem was caused by my local setting of Excell.
To fix it I had to change decimal separator from coma into dot under general Excel settings.
On my side it solved the problem perfectly.
answered Nov 7, 2019 at 14:15
jediAlex 4 / 4 / 4 Регистрация: 12.07.2011 Сообщений: 627 |
||||
1 |
||||
15.12.2016, 13:55. Показов 4837. Ответов 3 Метки нет (Все метки)
Здравствуйте. Пытаюсь вывести из табличной части обработки 1с дату в ячейку Excel:
Excel воспринимает дату как текст -NumberFormat не срабатывает. Как вывести дату в формате даты, а не текста?
0 |
Joker_vad 476 / 413 / 93 Регистрация: 26.09.2012 Сообщений: 1,912 |
||||
15.12.2016, 14:01 |
2 |
|||
0 |
jediAlex 4 / 4 / 4 Регистрация: 12.07.2011 Сообщений: 627 |
||||||||
15.12.2016, 14:17 [ТС] |
3 |
|||||||
сделал:
вывалилась ошибка при выполнении:
0 |
Dethmontt Модератор 3722 / 2917 / 574 Регистрация: 10.03.2011 Сообщений: 11,489 Записей в блоге: 1 |
||||
22.12.2016, 13:01 |
4 |
|||
0 |
Многие знают, что Excel гораздо старше 1С. На мой взгляд, это очень успешный продукт, и нареканий о нем я не слышал. Excel прост и универсален. Он способен выполнять не только простые арифметические операции, но и сложные вычисления, построение графиков и т.п. Знаю примеры, когда организации до перехода на 1С вели часть бухгалтерии в Excel. Многие и сейчас параллельно используют две программы. В этой статье рассмотрим способы обмена данными между 1С и Excel.
Таблицы 1С и Excel.
Многие пользователи для удобства работы сохраняют таблицы 1С (печатные формы) в формате Excel (*.xls). После чего в полученном файле делают различные группировки, сортировки, вычисления и т.п. Связано это с тем, что в таблицах 1С нет такого огромного функционала как в таблицах Excel. Но в версии 1С 8.0 есть нововведения, делающих работу с таблицами более комфортной.
Замечание: В Excel разделителем дробной части считается символ «,». Поэтому перед сохранением таблицы 1С в формате Excel замените в ней другой разделитель (например «.») на «,». Иначе в Excel с этими числами не удастся произвести вычисления, или они вообще не будут отображаться как числа. Например, в таблице 1С «15.2» отобразится в Excel как «15.фев».
Получение данных из Excel.
Доступ из 1С к Excel производится посредством OLE. Например, код
Попытка
Эксель= СоздатьОбъект(«Excel.Application»);
Исключение
Сообщить(ОписаниеОшибки() + » Программа Exсel не установлена на данном компьютере!»);
Возврат;
КонецПопытки;
позволит нам получить доступ через переменную «Эксель» к запущенному приложению Excel. А далее уже можно получить доступ к книге (файлу), листу и ячейке с данными. Далее примеры кода.
Открытие книги (файла):
Книга=Эксель.WorkBooks.Open(ПутьКФайлу);
ПутьКФайлу — полный путь к файлу книги Excel.
Выбор листа книги для работы с ним:
Лист=Книга.WorkSheets(НомерЛиста);
или
Лист=Книга.WorkSheets(ИмяЛиста);
НомерЛиста — номер листа в книге, ИмяЛиста — имя листа в книге.
Получение значения ячейки листа:
Значение=Лист.Cells(НомерСтроки,НомерКолонки).Value;
НомерСтроки, НомерКолонки — номер строки и номер колонки, на пересечении которых находится ячейка.
Важно: не забывайте поле выполнения нужных действий добавлять кодЭксель.Quit();, иначе запущенный процесс останется незавершенным и будет занимать память и процессор компьютера.
Вывод данных в Excel.
Для вывода (выгрузки) данных в Excel необходимо либо открыть существующую книгу, либо
создать новую, и выбрать рабочий лист для вывода данных. Открытие существующей книги описано выше, а для создания новой книги нужно использовать следующий код:
Попытка
Эксель= СоздатьОбъект(«Excel.Application»);
Исключение
Сообщить(ОписаниеОшибки() + » Программа Exсel не установлена на данном компьютере!»);
Возврат;
КонецПопытки;
Книга=Эксель.WorkBooks.Add();
Так как при создании книги в Excel автоматически создаются листы (Сервис->Параметры->Общие->Листов в новой книге), то нужно лишь произвести выбор листа, с которым будет вестись работа:
Лист=Книга.WorkSheets(НомерЛиста);
либо добавить в книгу новый лист, если необходимо:
Лист=Книга.Sheets.Add();
Следующим шагом будет установка значения ячейки:
Лист.Cells(НомерСтроки,НомерКолонки).Value=Значение;
НомерСтроки, НомерКолонки — номер строки и номер колонки, на пересечении которых находится ячейка.
И в конце нужно произвести запись созданной книги:
Попытка
Книга.SaveAs(ПутьКФайлу);
Исключение
Сообщить(ОписаниеОшибки()+» Файл не сохранен!»);
Возврат;
КонецПопытки;
ПутьКФайлу — полный путь к файлу книги Excel (включая имя).
Важно: не забывайте, что в имени файлов не должно содержаться символов / : * ? » > < |.
Часто используемые методы для чтения/установки значений в Excel.
Эксель = СоздатьОбъект(«Excel.Application»); | Получение доступа к приложению Excel. |
Эксель.Visible = Видимость; |
0 — Excel не виден, 1 — виден. |
Книга = Эксель.WorkBooks.Add(); |
Создание новой книги (файла) Excel. |
Книга.SaveAs(ИмяФайла); |
Сохранение книги Excel. |
Лист = Книга.WorkSheets.Add(); |
Добавление нового листа в книгу. |
Книга = Эксель.WorkBooks.Open(ИмяФайла); |
Открытие существующей книги (файла) Excel. |
Лист = Книга.WorkSheets(НомерЛиста); |
Установка листа в качестве рабочего с номером НомерЛиста. |
Лист.Name = ИмяЛиста; |
Задание рабочему листу имени ИмяЛиста |
Лист.PageSetup.Zoom = Масштаб; |
Задание параметра страницы «Масштаб» (от 10 до 400). |
Лист.PageSetup.Orientation = Ориентация; |
Ориентация: 1 — книжная, 2 — альбомная. |
Лист.PageSetup.LeftMargin = Эксель.CentimetersToPoints(Сантиметры); |
Задание левой границы (в сантиметрах). |
Лист.PageSetup.TopMargin = Эксель.CentimetersToPoints(Сантиметры); |
Задание верхней границы (в сантиметрах). |
Лист.PageSetup.RightMargin = Эксель.CentimetersToPoints(Сантиметры); |
Задание правой границы (в сантиметрах). |
Лист.PageSetup.BottomMargin = Эксель.CentimetersToPoints(Сантиметры); |
Задание нижней границы (в сантиметрах). |
Лист.Columns(НомерКолонки).ColumnWidth = Ширина; |
Задание ширины колонке. |
Лист.Cells(НомерСтроки,НомерКолонки).Value = Значение; |
Ввод данных в ячейку. |
Лист.Cells(НомерСтроки,НомерКолонки).Font.Name = ИмяШрифта; |
Установка шрифта в ячейке. |
Лист.Cells(НомерСтроки,НомерКолонки).Font.Size = РазмерШрифта; |
Установка размера шрифта в ячейке. |
Лист.Cells(НомерСтроки,НомерКолонки).Font.Bold = Жирный; |
1 — жирный шрифт, 0 — нормальный. |
Лист.Cells(НомерСтроки,НомерКолонки).Font.Italic = Курсив; |
1 — наклонный шрифт, 0 — нормальный. |
Лист.Cells(НомерСтроки,НомерКолонки).Font.Underline = Подчеркнутый; |
2 — подчеркнутый, 1 — нет. |
Лист.Cells(НомерСтроки, НомерКолонки).NumberFormat = Формат; |
Установка формата данных ячейки. |
Лист.Cells(НомерСтроки,НомерКолонки).Borders.Linestyle = ТипЛинии; |
Установка рамок ячейки. 1 — тонкая сплошная. |
Постоянный адрес статьи http://exp-1c.narod.ru/articles/articl01.htm
Ermak |
|
||
---|---|---|---|
Добрый день! Подскажите может кто делал такое, чтобы выводить отчет в excel. Например у меня есть форма в excel
в конфигураторе есть два документа Материалы для авто и Материалы для самолетов с реквизитами Организация и табл. частью номенклатура, кол-во, цена, сумма. Как сделать чтобы сформировались данные в этой форме excel. |
Yandex |
|
||
---|---|---|---|
E_Migachev |
|
||
---|---|---|---|
(0) Ermak, так выведи в табличный документ и сохрани как excel |
Ermak |
|
||
---|---|---|---|
В том то и дело что хотелось бы выводить в эксель, в дальнейшем может быть очень сложная форма, в 1с не получиться у меня сделать |
E_Migachev |
|
||
---|---|---|---|
(2) Ermak, вот пример выгрузки
Код 1C v 8.х
подробнее: v8.x: Выгрузка данных в Excel с установкой разных параметров |
Ermak |
|
||
---|---|---|---|
(3) E_Migachev, А есть у вас в файле обработки и что получится в excel, так нагляднее будет? |
E_Migachev |
|
||
---|---|---|---|
(4) Ermak, вот пример: Скачивать файлы может только зарегистрированный пользователь! |
E_Migachev |
|
||
---|---|---|---|
+ пример выгрузки с указанием Конкретных ячеек:
Код 1C v 8.х
|
Ermak |
|
||
---|---|---|---|
(6) E_Migachev, Выгрузка справочника в эксель это не то, а вот пример по выгрузки с указанными ячейками это мне нужно, можете пример показать? |
E_Migachev |
|
||
---|---|---|---|
так это же один и тот же код, только в обработке по выгрузке справочников ячейка указывается программно:
Код 1C v 8.х
а тут принудительно:
|
Ermak |
|
||
---|---|---|---|
(8) E_Migachev, я хотел бы посмотреть, как сделать обращение к переменой, например я в форме напишу переменную «КолМатерАвто» и в эту переменю буду заноситься данные с документа. И как прописать если у меня будет 1000 строк чтобы он заносил данные куда надо. |
Mokey |
|
||
---|---|---|---|
(9) Ermak «И как прописать если у меня будет 1000 строк чтобы он заносил данные куда надо», |
Ermak |
|
||
---|---|---|---|
а по этому? » я хотел бы посмотреть, как сделать обращение к переменой, например я в форме напишу переменную «КолМатерАвто» и в эту переменю буду заноситься данные с документа» |
Ermak |
|
||
---|---|---|---|
(10) Mokey, Это указывается определенная ячейкаКод 1C v 8.х
А как прописать чтобы он по данной колонки и строке заполнял N количество |
Mokey |
|
||
---|---|---|---|
(11) Ermak,
Лист.Cells(СтрокаЛиста, Колонка).Value = КолМатерАвто; |
Mokey |
|
||
---|---|---|---|
точнее вопрос можно услышать? я пока не догоняю, что Вы хотите изобразить, к сожалению. |
Ermak |
|
||
---|---|---|---|
Я так понимаю этим кодом 1С будет искать переменную КолМатерАвто в форме excel и подставлять данные. А переменная КолМатерАвто должна также называться как и в документе от куда будут браться данные или нет?Код 1C v 8.х
|
Mokey |
|
||
---|---|---|---|
При чём тут переменная эксель, если Вы из документа (или откуда-то из 1С) выгружаете? |
Ermak |
|
||
---|---|---|---|
Я где то видел пример с вордом, пишеться перемена в форме ворда и когда идет выгрузка данных из 1с в ворд то данные подставляются в переменые в форме ворда, вот я и про эксель так и думаю, если в экселе прописать переменую в какой нибудь ячейки то как будут данные попадать с 1с в эту ячейку? Конечно может я что то не так понимаю.
Изменено 22.02.13 12:29:08 |
Mokey |
|
||
---|---|---|---|
(17) Ermak Конечно может я что то не так понимаю., вот это правильное утверждение. ))) |
Mokey |
|
||
---|---|---|---|
В ворде прописываются переменные в макете, чтобы можно было найти их и заменить на текст из выгрузки, а в экселе ячейка уже готова сама по себе принять данные. |
Ermak |
|
||
---|---|---|---|
(19) Mokey, а можете показать пример полностью готового код а не кусочекКод 1C v 8.х
|
Mokey |
|
||
---|---|---|---|
а зачем строку и столбец таким извращённым способом вычислять? И второе: СтрокаТабл.Значение… Значение — это что, колонка таблицы значений? |
Ermak |
|
||
---|---|---|---|
(21) Mokey, Это мне пример показал (6) E_Migachev, если есть что наглядней можете показать |
Mokey |
|
||
---|---|---|---|
Я не знаю Ваших задач, а примеров кучу можно показать, но они все разные будут, Вам какую задачу надо решить? |
Ermak |
|
||
---|---|---|---|
(23) Mokey, я здесь описал, (0) Ermak |
Ermak |
|
||
---|---|---|---|
*03 |
Mokey |
|
||
---|---|---|---|
(25) Ermak, применительно к Вашей проблеме есть два варианта:
1. Создать шаблон эксель и на основании него заполнять таблицу (код заполнения описан тут выше, естесственно, применяете к Вашей задаче) 2. Создавать чистую книгу, заполнять её (см. выше) и форматировать (объединяя ячейки). Вы скажите, на каком этапе у Вас случился затык? Изменено 26.02.13 10:03:31 |
Ermak |
|
||
---|---|---|---|
мне нужен первый вариант, но код который написан выше он ссылается на ячейку а мне нужно к переменно которая будет написана в ячейки эксель шаблона, вот я и прошу покажите пример как обращаться к переменной |
E_Migachev |
|
||
---|---|---|---|
(27) Ermak, к переменной ни как, только к ячейкам:
Код 1C v 8.х
|
Mokey |
|
||
---|---|---|---|
(27) Ermak, минуточку, а откуда в экселе взялась переменная?
(9) Ermak, вот тут вижу, но что Вы вкладываете в слово «Форма»? вот что меня выбило из седла! Форма в Вашем понимании — это экселевский документ, что ли? Изменено 26.02.13 16:45:38 |
Ermak |
|
||
---|---|---|---|
Да в моем контексте я имел ввиду Форма экселевский документ |
Mokey |
|
||
---|---|---|---|
(30) Ermak, скажите, а зачем Вам переменную в экселе иметь? Чем не нравится (или тяжело) заполнять ячейки адресно? В ворде понятно, там не к чему «привязаться», поэтому в текст (шаблон) вставляют переменные, которые заменяются на искомый текст. А в экселе и так всё поделено уже на квадратики, только заполняй, хоть вдоль, хоть поперёк)))
Изменено 27.02.13 11:58:59 |
Ermak |
|
||
---|---|---|---|
(31) Mokey, понятно |
Mokey |
|
||
---|---|---|---|
(32) Ermak, с таким подходом вы не найдёте ответов на Ваши вопросы. Я бы, например, был не прочь посмотреть на Форму эксель с переменной. |
Ermak |
|
||
---|---|---|---|
(33) Mokey, Я вроде писал что я видел в ворде как сделано, там используется перемена вот и думал что аналогично в экселе делается, но теперь буду пробовать с ячейками. Спасибо за помощь. |
Mokey |
|
||
---|---|---|---|
(34) Ermak, так ведь в самом начале сказали, что нельзя, а Вы всё не верили. Удачи. |
Ermak |
|
||
---|---|---|---|
(28) E_Migachev, подскажите пример как обратиться к самому шаблону эксель, который лежит в папки. |
E_Migachev |
|
||
---|---|---|---|
Код 1C v 8.х
где ИмяВременногоФайла — путь к файлу |
Ermak |
|
||
---|---|---|---|
У меня таблицы значений из за этого ругается
{Форма.Форма.Форма(23,29)}: Переменная не определена (ТаблДанных) Как можно по другому сделать Код 1C v 8.х
|
Mokey |
|
||
---|---|---|---|
(38) Ermak, так она по этому кусочку кода и неопределена. Что у Вас ТаблДанных? |
Ermak |
|
||
---|---|---|---|
У меня нет таблицы данных, я беру данные с реквизитов Док.Клиент.Наименование; |
Mokey |
|
||
---|---|---|---|
А как Вы тогда обращаетесь к ТаблДанных? Объявите её в процедуре, инициализируйте и тогда обращайтесь. Или обращайтесь непосредственно к реквизитам Док.Клиент….. |
Ermak |
|
||
---|---|---|---|
Покажите пример как обращаться к реквизитам. |
Mokey |
|
||
---|---|---|---|
Во-первых, надо знать, откуда запускается эта процедура
Во-вторых, какие вообще реквизиты есть и какого типа данных. Если Адресная информация в Вашем случае — это табличная часть справочника, то надо непосредственно так: Для Каждого СтрокаТабл Из Док.Клиент.ТЧ_Адреса, где ТЧ_Адреса — это та самая табличная чать, в Вашем случае может по-другому называться Да, и здесь мы подразумеваем, что процедура запускается в теле модуля Док, у которого есть реквизит Клиент. Изменено 06.03.13 10:54:58 |
Ermak |
|
||
---|---|---|---|
1. Процедура запускается с внешней обработки |
Mokey |
|
||
---|---|---|---|
у меня нет под рукой документа ОказаниеУслуг, к сожалению. Что-то мы всё вокруг да около ходим. Клиент — это реквизит документа, а Цена — реквизит табличной части, так? |
Ermak |
|
||
---|---|---|---|
1. Клиент и Цена это правильно
2. Внешняя обработка вызывается просто через файл открыть, вы это имели ввиду? Передается так Код 1C v 8.х
3. ТЧ документа называется ПереченьНоменклатуры |
Mokey |
|
||
---|---|---|---|
Код 1C v 8.х
Я подразумеваю, что в ПереченьНоменклатуры есть реквизиты Адрес и Цена Изменено 06.03.13 12:43:05 |
Ermak |
|
||
---|---|---|---|
Выдал ошибку
{Форма.Форма.Форма(14)}: Недостаточно фактических параметров В ПереченьНоменклатуры есть реквизиты только Цена, адреса нет вообще. |
Ermak |
|
||
---|---|---|---|
Че та я запутался, вот мой кодКод 1C v 8.х
Изменено 06.03.13 13:12:18 |
Mokey |
|
||
---|---|---|---|
Это только кусочек кода, проблема в вызове процедуры |
Ermak |
|
||
---|---|---|---|
Что то я совсем запутался, давай те с начала, я писал что у меня один реквизит Клиент а второй Тбличная Часть — ПереченьНоменклатуры — Цена
Этим я ищу реквизит Клиент Код 1C v 8.х
Передаю данные в ячейку Код 1C v 8.х
А как сделать потом его в цикле я не понимаю! И реквизит Цена то не понимаю как задать чтобы его данные попадали в шаблон excel |
Mokey |
|
||
---|---|---|---|
Этим я ищу реквизит Клиент
Код 1C v 8.х Где Вы тут ищете и что? Док = Документы.ОказаниеУслуги.НайтиПоРеквизиту(Клиент, «Клиент»); |
Ermak |
|
||
---|---|---|---|
Док = Документы.ОказаниеУслуги.НайтиПоРеквизиту(Клиент, «Клиент»);
тогда уж так а если у меня 20 будет реквизитов к каждому обращаться, или есть способ лучше? |
Ermak |
|
||
---|---|---|---|
Всеравно не понимаю Док.ПереченьНоменклатуры это обращается к табличной части ПереченьНоменклатуры но к ней относиться только реквизит Цена а Клиент не в ТЧ |
Mokey |
|
||
---|---|---|---|
Понимаете ли, НайтиПоРеквизиту() — это не обращение, это поиск в базе ссылки, в данном случае документа, по искомому реквизиту. Я теперь уже и не знаю, в каком направлении Вас консультировать, то ли азы 1С, но в таком случае говорится «учите матчасть», потому что без неё выгрузить в эксель будет трудно.
Я пытался задать наводящие вопросы по Вашему же коду, чтобы давать конкретные советы, но Вы запутались совсем)) Изменено 06.03.13 15:42:40 |
Ermak |
|
||
---|---|---|---|
тогда я уже очень сильно запутался, давно не обращался к 1С *01 |
Ermak |
|
||
---|---|---|---|
Подскажите как обращаться к реквизитам с внешней обработки? |
Mokey |
|
||
---|---|---|---|
Для начала, нужно найти (или передать в обработку) ссылку на объект, к реквизитам которго Вы хотите обращаться. А там уже как обычно, в примерах выше показано, как обращаться, через точку. |
Ermak |
|
||
---|---|---|---|
В этом у меня путаница как выбрать, покажите на примере
Изменено 07.03.13 12:08:45 |
Ermak |
|
||
---|---|---|---|
Сделал так но почему то не выводит значение Цена а только ДатуКод 1C v 8.х
Изменено 07.03.13 12:27:42 |
Ermak |
|
||
---|---|---|---|
Попробовал таким способом, теперь выводит но почему то только одного клиента а их у меня пять, почему не понимаюКод 1C v 8.х
|
Ermak |
|
||
---|---|---|---|
Сделал такую процедуруКод 1C v 8.х
Выдает ошибку {Форма.Форма.Форма(56)}: Ошибка при вызове метода контекста (Выполнить) |
Ermak |
|
||
---|---|---|---|
Хотел еще спросить как сделать, нужно чтобы Номенклатура выводилась в одну колонку по порядку строки из двух регистров, у меня сейчас первый регистр должен выводить номенклатуру в 1 строке а второй регистр выводить номенклатуру в 4 строке. Может я конечно что то не так делаю поправьте меня. |
Mokey |
|
||
---|---|---|---|
(62) Ermak, в показанном коде нет такой строки |
Ermak |
|
||
---|---|---|---|
(64) Mokey, извиняюсь перепутал. Подскажите по этому (63) Ermak, |
Mokey |
|
||
---|---|---|---|
(63) Ermak, создайте один запрос-объединение, тогда обход будет по одной коллекции значений |
Ermak |
|
||
---|---|---|---|
Подскажите как правильно сделать запрос-объединение, я что то не правильно делаюКод 1C v 8.х
|
Mokey |
|
||
---|---|---|---|
Код 1C v 8.х
|
Ermak |
|
||
---|---|---|---|
Все получилось большое спасибо!!!
*05 Вопросик еще один, выгрузил я в ecel, если у ячейки нет значения то ставит 0, а можно сделать чтобы чистая ячейка оставалась? А если я буду объединять три или n регистров, как тогда будет и т.д Изменено 12.03.13 17:23:41 |
Mokey |
|
||
---|---|---|---|
(69) Ermak |
Ermak |
|
||
---|---|---|---|
(70) Mokey, Спасибо большое! |
Ermak |
|
||
---|---|---|---|
Я переделал свой запрос, сделал по проще. Не понимаю почему выдает оишбку
{Форма.Форма.Форма(114)}: Ошибка при установке значения атрибута контекста (Value) Код 1C v 8.х
|
Ermak |
|
||
---|---|---|---|
Разобрался в чем ошибка!
Вот исходный код кому интересенКод 1C v 8.х
|
Ermak |
|
||
---|---|---|---|
Я выгрузил данные в эксель, хочу теперь в экселе сложить все данные СУММА() а он не складывает, почему? |
Ermak |
|
||
---|---|---|---|
Пытаюсь сделать условие по организации, чтобы данные передавались в нужный документ и не работает, что не такКод 1C v 8.х
Изменено 13.03.13 12:48:56 |
E_Migachev |
|
||
---|---|---|---|
(75) Ermak, потому что организация это справочник и тебе надо сверять ссылкой
или сверяй наименование Код 1C v 8.х
|
Ermak |
|
||
---|---|---|---|
Выдает ошибку
{Форма.Форма.Форма(22)}: Значение не является значением объектного типа (Sheets) Я выгрузил данные в эксель, хочу теперь в экселе сложить все данные СУММА() а он не складывает, почему? |
E_Migachev |
|
||
---|---|---|---|
похоже что не получается открыть или прочитать твой файл |
Mokey |
|
||
---|---|---|---|
(77) Ermak, потому что |
Ermak |
|
||
---|---|---|---|
(79) Mokey, а как тогда нужно? |
Ermak |
|
||
---|---|---|---|
Числовой сделал, ругаеться
{Форма.Форма.Форма(82)}: Преобразование значения к типу Число не может быть выполнено |
Mokey |
|
||
---|---|---|---|
(81) Ermak, потому что Результат.ФорКоличество = Неопределено, или Ссылка какая-то, судя по запросу, скорее всего.
в запросе надо надо делать так: | ВЫБОР |
Ermak |
|
||
---|---|---|---|
(82) Mokey, все получилось спасибо. Я на счет нулей в ячейках где нет значений, я сделал формат ячейки Общий, все равно нули, может можно через код как то сделать? |
Mokey |
|
||
---|---|---|---|
т.е. и в пустом экселевском файле нули в ячейках? |
Ermak |
|
||
---|---|---|---|
вот скрин файла
|
Mokey |
|
||
---|---|---|---|
Попробуйте не выводить значение в ячейку, если оно равно 0.
например: Код 1C v 8.х
|
Ermak |
|
||
---|---|---|---|
(86) Mokey, Все равно выводит 0 |
Mokey |
|
||
---|---|---|---|
(87) Ermak, Значит, формат ячеек на самом листе эксель проверяйте |
Ermak |
|
||
---|---|---|---|
когда я загружаю данные формат ячейки случайно не меняется, я имею ввиду который формат был в 1С он не становится в экселе такой же |
Ermak |
|
||
---|---|---|---|
Подскажите что делаю не так
Вот код Код 1C v 8.х
1. Почему то после выгрузки просит файл сохранить только потом его открываешь и смотришь, как сделать чтобы он просто открывал файл с выгруженными данными Изменено 29.03.13 15:16:57 |
Ermak |
|
||
---|---|---|---|
СделалКод 1C v 8.х
Выдает ошибку |
Ermak |
|
||
---|---|---|---|
Подскажите как мне быть. Я когда то делал такой запрос Код 1C v 8.х
Сейчас мне нужно проверить, если значение = Форма №1 тогда …, вот как я стал делать но выдает ошибку Код 1C v 8.х
|
Ermak |
|
||
---|---|---|---|
Вопрос закрыт! |
Подсказка:Вы можете добавить любую страничку в Социальные закладки щелкнув по значку соцсетей (в вверху) |