Добрый Всем! Прошу помощи в следующем вопросе. Сам я занимаюсь немножко другой темой - 1С. Не хочу сейчас грузить условиями поставленной задачи, ограничусь конкретной проблемой: Дано: Лист EXCEL. На листе есть сгрупированные строки.(т.е. когда плюсик слева от строки)
Вопрос: могу ли я через свойства строки получить номер строк начала и конца группировки? Т.е чтот типа НомерСтрокиНачалоГруппировки = ЛистEXCEL.Строка().НачалоГруппировки; НомерСтрокиКонецГруппировки = ЛистEXCEL.Строка().КонецГруппировки;
мне необхоидмо из 1С использовать следующую конструкцию:
Excel = Новый COMОбъект("Excel.Application"); Excel.WorkBooks.Open(ИмяФайла); ExcelЛист = Excel.Sheets(НомерЛистаExcel); Для Каждого ActiveCell.Row Из ExcelЛист Цикл
//Ну а дальше примерно чтобы так получилось: Если ActiveCell.Row.НАЧАЛО ГРУППИРОВКИ Тогда //// КонецЦикла;
Если ActiveCell.Row.КОНЕЦ ГРУППИРОВКИ Тогда //// КонецЦикла;
Всем заранее спасибо.
Добрый Всем! Прошу помощи в следующем вопросе. Сам я занимаюсь немножко другой темой - 1С. Не хочу сейчас грузить условиями поставленной задачи, ограничусь конкретной проблемой: Дано: Лист EXCEL. На листе есть сгрупированные строки.(т.е. когда плюсик слева от строки)
Вопрос: могу ли я через свойства строки получить номер строк начала и конца группировки? Т.е чтот типа НомерСтрокиНачалоГруппировки = ЛистEXCEL.Строка().НачалоГруппировки; НомерСтрокиКонецГруппировки = ЛистEXCEL.Строка().КонецГруппировки;
мне необхоидмо из 1С использовать следующую конструкцию:
Excel = Новый COMОбъект("Excel.Application"); Excel.WorkBooks.Open(ИмяФайла); ExcelЛист = Excel.Sheets(НомерЛистаExcel); Для Каждого ActiveCell.Row Из ExcelЛист Цикл
//Ну а дальше примерно чтобы так получилось: Если ActiveCell.Row.НАЧАЛО ГРУППИРОВКИ Тогда //// КонецЦикла;
Если ActiveCell.Row.КОНЕЦ ГРУППИРОВКИ Тогда //// КонецЦикла;
Rows(НАЧАЛО ГРУППИРОВКИ & ":" & КОНЕЦ ГРУППИРОВКИ).Rows.Group
А можете подробнее разжевать?
Идеальный вариант: рабочий код... Допустим: перебираем в цикле строки листа, если находим строку начала групировки, ложим номер строки в переменную А перебираем далее, находим конец - ложим номер строки в переменную В ?
А я как нибудь попробую на 1с перевести...
Был бы безмерно благодарен.
А я с 1С если что помогу
Цитата (Jhonson)
Rows(НАЧАЛО ГРУППИРОВКИ & ":" & КОНЕЦ ГРУППИРОВКИ).Rows.Group
А можете подробнее разжевать?
Идеальный вариант: рабочий код... Допустим: перебираем в цикле строки листа, если находим строку начала групировки, ложим номер строки в переменную А перебираем далее, находим конец - ложим номер строки в переменную В ?
Sub групп() Dim i, n, k As Integer Dim flag As Boolean flag = True For i = 1 To 100 'перебераем строки с 1-й по 100-ю If Rows(i).OutlineLevel > 1 And flag Then n = i: flag = False If Rows(i).OutlineLevel > 1 And Not flag Then k = i Next MsgBox ("НАЧАЛО ГРУППИРОВКИ: " & n & Chr(10) & "КОНЕЦ ГРУППИРОВКИ: " & k) End Sub
[/vba]
в самом простом варианте: [vba]
Код
Sub групп() Dim i, n, k As Integer Dim flag As Boolean flag = True For i = 1 To 100 'перебераем строки с 1-й по 100-ю If Rows(i).OutlineLevel > 1 And flag Then n = i: flag = False If Rows(i).OutlineLevel > 1 And Not flag Then k = i Next MsgBox ("НАЧАЛО ГРУППИРОВКИ: " & n & Chr(10) & "КОНЕЦ ГРУППИРОВКИ: " & k) End Sub
возвращающее количество вложеных строк группировки?
Нет, это свойство строки либо столбца возвращающее уровень вложенности группировки, т.е. если на листе несколько уровней вложенности, а также несколько групп и все это надо учитывать, то макрос нужно переделывать!
Цитата (Pawlick)
возвращающее количество вложеных строк группировки?
Нет, это свойство строки либо столбца возвращающее уровень вложенности группировки, т.е. если на листе несколько уровней вложенности, а также несколько групп и все это надо учитывать, то макрос нужно переделывать!Jhonson
"Ничто не приносит людям столько неприятностей, как разум."
Сообщение отредактировал Jhonson - Среда, 15.05.2013, 09:50
В 1С есть такой объект: ТабличныйДокумент; У этого Объекта есть метод Записать; Синтаксис: Записать(<ИмяФайла>, <ТипФайлаТаблицы>) Параметры: <ИмяФайла> (обязательный) Тип: Строка. Имя файла, в котором сохраняется табличный документ. <ТипФайлаТаблицы> (необязательный) Тип: ТипФайлаТабличногоДокумента. Формат, в котором будет сохранен табличный документ. Значение по умолчанию: MXL Описание: Записывает табличный документ в файл.
Т.е. процедура для сохранения печатной формы какого нибудь документа в файл EXCEL общем виде будет выглядеть так:
Процедура ВыгрузитьВEXCEL
//Сначала формируем табличный документ: ТабличныйДокумент = СформироватьТабличныйДокумент; //Потом выгружаем в файл с именем РезультатВыгрузки.xls ТабличныйДокумент.Записать("C:\My Documents\ РезультатВыгрузки.xls", ТипФайлаТабличногоДокумента.XLS);
КонецПроцедуры;
Соответственно задача по выгрузке данных из 1С в EXCEL сводится к формированию табличного документа, который потом выгружается в EXCEL. Поэтому я и спросил какие именно данные необходимо выгрузить в EXCEL, т.к. от этого будет зависеть способ формирования табличного документа. Табличные документы в типовых конфигурациях 1С создаются при формировании печатных форм (то что вы непосредственно отправляете на печать) либо при формировании отчетов: само поле отчета и есть ТабличныйДокумент.
Вот по быстрому наваял выгрузку в EXCEL печатной формы документа Прим на работу в организацию (ЗУП 2.5.46.1 ) Сделал в виде внешней печатной формы. Как подключить знаете? В объщем, спрашивайте если что.
Serge_007, Ок.
В 1С есть такой объект: ТабличныйДокумент; У этого Объекта есть метод Записать; Синтаксис: Записать(<ИмяФайла>, <ТипФайлаТаблицы>) Параметры: <ИмяФайла> (обязательный) Тип: Строка. Имя файла, в котором сохраняется табличный документ. <ТипФайлаТаблицы> (необязательный) Тип: ТипФайлаТабличногоДокумента. Формат, в котором будет сохранен табличный документ. Значение по умолчанию: MXL Описание: Записывает табличный документ в файл.
Т.е. процедура для сохранения печатной формы какого нибудь документа в файл EXCEL общем виде будет выглядеть так:
Процедура ВыгрузитьВEXCEL
//Сначала формируем табличный документ: ТабличныйДокумент = СформироватьТабличныйДокумент; //Потом выгружаем в файл с именем РезультатВыгрузки.xls ТабличныйДокумент.Записать("C:\My Documents\ РезультатВыгрузки.xls", ТипФайлаТабличногоДокумента.XLS);
КонецПроцедуры;
Соответственно задача по выгрузке данных из 1С в EXCEL сводится к формированию табличного документа, который потом выгружается в EXCEL. Поэтому я и спросил какие именно данные необходимо выгрузить в EXCEL, т.к. от этого будет зависеть способ формирования табличного документа. Табличные документы в типовых конфигурациях 1С создаются при формировании печатных форм (то что вы непосредственно отправляете на печать) либо при формировании отчетов: само поле отчета и есть ТабличныйДокумент.
Вот по быстрому наваял выгрузку в EXCEL печатной формы документа Прим на работу в организацию (ЗУП 2.5.46.1 ) Сделал в виде внешней печатной формы. Как подключить знаете? В объщем, спрашивайте если что.Pawlick
Но хотелось всё-же не это Постараюсь пояснить по аналогии. Работаю в Excel и необходимо импортировать данные из-какой-либо СУБД, например Access, FoxPro или 1С.
Для Access: Данные - Импорт - из Access. Далее создаю выбираю нужную таблицу или таблицы, при необходимости корректирую запрос
Для FoxPro: Данные - Импорт - из других источников. Далее выбираю источник, при необходимости корректирую запрос
А для 1С?
Спасибо за ответ
Но хотелось всё-же не это Постараюсь пояснить по аналогии. Работаю в Excel и необходимо импортировать данные из-какой-либо СУБД, например Access, FoxPro или 1С.
Для Access: Данные - Импорт - из Access. Далее создаю выбираю нужную таблицу или таблицы, при необходимости корректирую запрос
Для FoxPro: Данные - Импорт - из других источников. Далее выбираю источник, при необходимости корректирую запрос