С огромным удовлетворением сообщаю уважаемому сообществу! Задача обрела решение. Для 1с77 мы можем использовать такой коД:
Сообщить(Лист.Cells(Строка_,Колонка).Address); //Сообщает адрес ячейки Сообщить(Лист.Cells(Строка_,Колонка).MergeCells); //Сообщает, являэться ли ячейка в объединенном диапазоне (-1 True) Сообщить(Лист.Cells(Строка_,Колонка).MergeArea.Address);//Сообщает, область в которуювходит ячейка в объединенном диапазоне
Проверила, нет этого файла. А что нужно сделать, что бы устранить проблему?
1. найти эту компоненту в интернете, скачать, установить. или 2.Если эте компонента не отвечает за чтото серьезное, удалить ссылки на нее в конфигурации... или 3. Поручить эту задачу специалисту.
Я думаю, на 5000 строк вы особой разницы не почувствуете . Та и писать то тут, в принципе, фигня. Процентов 70 кода будет одинакового в обоих обработках
:-) Уже почти дописал... Протестирую и напишу разницу во времени... А так же код... Может кому пригодится.. ))))
Для теста я использовал: 1. Виртуальный диск выделенный в оперативной памяти. 2. Два ексель документа по 5000 позиций 3. Алгоритм прямой роботы с ексель. (А) 4. Алгоритм роботы через Таблицу Значений. (Б) Результат: Алгоритм А показал 5 минут и 19 секунд Алгоритм Б показал 52 секунды.
Привожу Вашему вниманию более быстрый Извините за то-что он не изящен. Торпился написать и протестить.
Процедура Выполнить2() Имя=КаталогИБ()+"\xls\open.xls"; Лист=СоздатьОбъект("Excel.Application"); Лист.Workbooks.Open(Имя); //Добавляем новый документ ТЗ1 = СоздатьОбъект("ТаблицаЗначений"); ТЗ1.НоваяКолонка("Код"); ТЗ1.НоваяКолонка("Имя"); ТЗ1.НоваяКолонка("Цена"); Лист.ScreenUpdating = 0; Лист.EnableEvents = 0; Лист.Visible = 0; сч=0; строкаЕхель=1; пока сч<10 Цикл Ячейка=СокрЛП(Лист.Cells(строкаЕхель,2).Value); Если Ячейка="" Тогда сч=сч+1; Иначе сч=0; ТЗ1.НоваяСтрока(); ТЗ1.Код=СокрЛП(Лист.Cells(строкаЕхель,1).Value); ТЗ1.Имя=СокрЛП(Лист.Cells(строкаЕхель,2).Value); ТЗ1.Цена=0; //Сообщить(ТЗ1.Код); //Сообщить(ТЗ1.Имя); КонецЕсли; строкаЕхель=строкаЕхель+1; КонецЦикла;
Имя2=КаталогИБ()+"\xls\test.xls"; Лист2=СоздатьОбъект("Excel.Application"); Лист2.Workbooks.Open(Имя2); //Добавляем новый документ ТЗ2 = СоздатьОбъект("ТаблицаЗначений"); ТЗ2.НоваяКолонка("Имя"); ТЗ2.НоваяКолонка("Цена"); сч=0; строкаЕхель=1; пока сч<10 Цикл Ячейка=СокрЛП(Лист2.Cells(строкаЕхель,1).Value); Если Ячейка="" Тогда сч=сч+1; Иначе сч=0; ТЗ2.НоваяСтрока(); ТЗ2.Имя=СокрЛП(Лист.Cells(строкаЕхель,1).Value); ТЗ2.Цена=СокрЛП(Лист.Cells(строкаЕхель,6).Value); //Сообщить(ТЗ2.Имя); //Сообщить(ТЗ2.Цена); КонецЕсли; строкаЕхель=строкаЕхель+1; КонецЦикла;
Имя3=КаталогИБ()+"\xls\Результат.xls"; Лист3=СоздатьОбъект("Excel.Application"); Лист3.Workbooks.Open(Имя3); //Добавляем новый документ строкаЕхель=1; ТЗ1.ВыбратьСтроки(); Пока ТЗ1.ПолучитьСтроку()=1 Цикл ТЗ2.ВыбратьСтроки(); Пока ТЗ2.ПолучитьСтроку()=1 Цикл Если ТЗ1.Имя=ТЗ2.Имя Тогда Лист3.Cells(строкаЕхель,1).Value=ТЗ1.Код; Лист3.Cells(строкаЕхель,2).Value=ТЗ1.Имя; Лист3.Cells(строкаЕхель,3).Value=ТЗ1.Цена; //Сообщить(); //Сообщить(ТЗ1.Код); //Сообщить(ТЗ1.Имя); //Сообщить(ТЗ2.Цена); строкаЕхель=строкаЕхель+1; КонецЕсли; КонецЦикла; КонецЦикла; //****************************************************** Лист.ScreenUpdating = 1; //Ускореем Лист.EnableEvents = 1; //Вывыд Лист.Visible = 1; //в EXEL //****************************************************** Сообщить(ТекущееВремя()); форма.закрыть(); КонецПроцедуры
Загрузка выписок из Банк-Клиент, 6-ть банков (ОТП, Сбербанки России, Південний, Камбіо, УкрЕсІм Банк, СЕБ Банк, Приват24 ,УкрСибБанк) в конфигурацию 1С Бухгалтерия для Украины версия 1.2.5.3 (и старше) платформа 8.2. Обработка должна работать и в других конфигурациях, не тестировал. Доработанная стандартная обработка из конфигурации.
В виду того, что предложенный формат обмена данными между 1С-ми конфигурациями и системами Клиент-Банк, поддерживается только некоторыми банками, пришлось брать напильник и дотачивать обработку из конфигурации.
Так как загрузка выполняется из разных по структуре файлов обмена данными пришел к мысле, что нужно реализовать на каждый файл свой обработчик.
Изменены в модуле объекта стандарные процедуры и функции: ЗаполнитьДокументыНаИмпорт - сдесь вызиваются обработчики распознавания файлов обмена и формируется таблица документов для импорта. ПолучитьДатуИзСтроки - добавлено распознавание дат в формате "дд.мм.гггг"
Выбор обработчика происходит автоматически исходя из МФО банка выбранного расчетного счета, который выбран на форме.
Какие форматы поддерживаются: ОТП (МФО 300528) - файл Excel Сбербанки России (МФО 320627) - DBF (реализована загрузка нескольких файлов одновременно, нужно в пути к файлу указать только путь к папке) Південний (МФО ) - хитрый формат *.ord Камбіо (МФО 394523, 380399) - сам файл базы на Access УкрЕсІм Банк (МФО 380333) - DBF СЕБ Банк (МФО 300175) - 1c_to_kl.txt - этот файл имеет старую структуру 1С потому ее также нужно загружать по хитрому. Приват24 (МФО 300711) - DBF УкрСибБанк (МФО 351005) - CSV
Не реализован выбор путей к файлам загрузки в интерактивном режиме, так как у меня все пути записываются один раз и не изменяются, достаточно только скопировать и вставить при настройке путей загрузки выгрузки.
Хотя дата и не круглая.... Уверен.... Вам приятно... Звучали слова хвалебные... А я поздравляю, не зная Вас... Вы многим помочь смоли, и это по речам хвалебным мы поняли..... Здоровья и лет до четыреста Сообщество Вам желает(я не покривил душой? )) Живите и радуйте правнуков....внуков,детей,соседей ))))..... С Днем Варенья ВАС!!!!!!!!!!!!!!!!!!!!!
Более правдоподобно в данной ситуации звучала бы шутка: - Чем отличается программист от политика? - Программисту платят деньги за работающие программы.
а прикреплять степлером , или вставлять в бланк накладной? ))))
Вставлять в бланк форму. Я только что нашел обработку, Достаточно элегантно.
Перем oDevice[5]; Device = CreateObject("WIA.DeviceManager"); Количество = Device.DeviceInfos.Count; Для К=1 По Количество Цикл Если Device.DeviceInfos(к).Type = 3 Тогда Попытка oDevice[к] = Device.DeviceInfos(к).Connect(); Исключение oDevice[к] = 0; КонецПопытки; Иначе oDevice[к] = 0; КонецЕсли; КонецЦикла;
Для К = 1 По Количество Цикл Если oDevice[к] <> 0 Тогда Item = oDevice[к].ExecuteCommand("{AF933CAC-ACAD-11D2-A093-00C04F72DC3C}"); Image = Item.Transfer("{557CF401-1A04-11D3-9A73-0000F81EF32E}"); Image.SaveFile("D:\aaa.jpg"); КонецЕсли; КонецЦикла;
Я проверял работает супер. Если кому нада пользуйтесь
Доброго времени суток. Платформа 7.7. подскажите в каких файлах хранится план счетов? 1Cv7.DD я не нашел((( может плохо искал? тогда подскажите если не трудно в каких. Заранее благодарен.
Ура. Нашел сам. Может кому нада это файлы 1SACCS.CDX 1SACCS.DBF
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!