Очень удобно выгрузить справочник в Excel и там его уже "подкрутить" как хочешь, используя формулы, фильтры и тп…. или просто отдать неопытному пользователю для исправления названий, реквизитов и других реквизитов, при этом не переживая, что пользователь что-нибудь серьезно испортит…
Версия 2! Ввод новых элементов, редактируем даты, перечисления, справочники
05.02.09 — Теперь работает на подчиненных справочниках
29.03.12 — Добавлена возможность подбора элементов с помощью UCHOICE.ERT
Позволяет редактировать текстовые и числовые значения. Периодические значения читаются/записываются только на текущую дату. Есть простые фильтры (все/только неудаленные, по списку). Работает в любой конфигурации 7.7. Без ВК — только 1С и Ексель.
Тестировалась с 11-ой версией Excel-я (Office 2003), с другими версиями может «немного глючить» — сам не проверял.
Весь код, касающийся работы с Екселем подробно прокомментирован 🙂 — может служить неплохим пособием для изучения методов работы с Excel по OLE.
P.S. На больших справочниках скорость конечно не очень…
Версия 2
Новое во второй версии:
Появилась возможность добавления новых элементов — просто дописываем снизу таблицы.
Появилась возможность редактировать Перечисления с контролем правильности заполнения.
Появилась возможность редактировать реквизиты типа «Справочник», но с небольшими ограничениями: Справочник должен содержать только уникальные наименования элементов, не должен быть подчиненным и общее кол-во элементов не должно превышать 255 штук!
Появилась возможность проверки данных без их записи в базу данных.
Оптимизирована загрузка из Екселя — чем меньше измененных элементов — тем быстрее загружается.
При установленной галке «Без групп» вылетает ошибка:
Если Запрос.Выполнить(ПостроитьТекстЗапроса())=0 тогда
{J:1CGMSMSFOREF2XLS.ERT(168)}: Группировка СсылкаНаЭлементБез <<?>> групп;
Запрос[11] : Переменная ‘СсылкаНаЭлементБез’ не опеределена
Ошибка при формировании запроса к справочнику.
+1 за «правильную» идею
(1) Таки опечатался…. Уже обновил.
(2) сенкс, а с реализацией есть серьезные недостатки?
тов.Сhe Burashka отдельное спасибо — всегда оперативно смотрит новые разработки и комментирует.
весьма неплохо
очень хорошая идея
Если код элемента справочника начинался с «нуля» (пример: 0000087), то после корректировки какого либо его реквизита код становистся «без нулей» (пример: 87)
Это НЕ ЕСТЬ ГУД…..
(6) при выгрузке по оле надо выгружать не просто код типа спр.Код, а навроде
«‘»+спр.код
А как с подчиненными справочниками быть?
а у меня вообще отказывается работать… «код не уникальный», и до свидания… это при том, что коды вообще никто не трогал :-\
(6) Сенкс за выловленный баг. Уже исправил — если тип кода текстовый — то формат ячеек ставится текстовый.
(7) лучше жестко устанавливать формат ячеек — надежнее.
(8) Подчиненные справочники этой обработкой не обрабатываются
(9) Попробуй свежую версию — возможно у тебя код текстовый (см. пост 6), если не получится — скинь мне excel файл — попробую посмотреть. fn()inbox.ru
Очень не плохая обработка и я думаю будет очеь востребованной многими. Плюсую редко, но в данном случае явно «+»
Что ещё, кроме плюса, я могу добавить к сказанному?..
(12) Спасибо, этого достаточно 🙂
Меня интересует, а есть такая же, только с загрузкой новых данных. Ато часто приходится корректировать данные с добавлением новых….
(14) Полно! как на этом портале (напримерhttp://infostart.ru/projects/?rubric=76) так и в инете по поиску
Спасибо, хорошая обработка, вот только поставила в тупик: при выгрузке справочника номенклатуры с атрибутами наименование и штрихкод выгружает все наименование и часть штрихкодов (в справочнике 1C все штрихкода присвоены все EAN13) почему то некоторые штрихкода не выгружает. Что может быть?
(16) Скорее всего часть штрих-кодов находится в подчиненном справочнике (единицы измерения)
первый раз в жизни плюсанул! а ускорить обработачку нельзя?
В продложение (16) : Нет, штрихкодов в подчиненных справочниках нет, все они одинаково созданы в карточке товара номенклатуры при первом поступлении на склад.
(18) Основной тормоз — получение/запись данных через ОЛЕ в Ексель. На подходе вторая версия, с большим функционалом, большей скорость загрузки (загружаются только измененные элементы, а не все подряд), но меньшая скорость выгрузки.
Ускорить можно, если выгружать/читать через АДО или используя скрипт+массив, ну или ВК (Йоксель например) — но слишком много переписывать.
За плюс — спасибо!
(19) Попробуй с диска ИТС универсальный отчет печати справочников — там сформируй отчет по своему справочнику и сравни с полученным из этой обработки. Я думаю что они будут идентичны. Просто мысль, что программа пропускает некоторые значения по своей прихоти — абсурдна 😉
Обновил. Если что — сильно не пинайте! Но критика нужна!
Извините за вопрос чайника… а как загрузить обработку в конфигурацию… требует код?
(22) Вы можете подключить в конфигурацию первую версию обработки. Вторую версию можете добавить в дополнительные возможности.
Несомненно ПЛЮС)))))))
(24) Спасибо. А то вон некоторые (22) уже в конфигурацию внедряют, а плюс поставить им лень!
Очень полезная вещь!
Спасибо за идею!
Обязательно буду внедрять!
+1
Обработочка Просто СУПЕР!!!
Очень сильно помогла!!
Мега полезная вещь!
Мегаидея. Но сколькож труда вложено 5+
Для 8.1 бы
(30) Зачем Денису7.7 надо для 8.1? 😉
Мне для версии 8.1 надо. Я работаю в 8.1.
(32) К сожалению я работаю в 7.7, 8.1 видел тока на картинках 🙂
Но в принципе там ничего сложного — все ОЛЕ-команды в первой версии обработки прокомментированы в коде — можешь смотреть как пример и переписать на 8.1
(31) 77 — это не версия, а скорее всего год выпуска 🙂
Добрый день.
Хорошая обработка и коментариев много. Спасибо.
Есть вопрос. Как диаграммы в EXCEL добавлять из
1С? Очень буду рад если поможите, а то инфы по
этому вопросу найти не могу.
(34) Диаграммы добавляются через объект Charts. Проще всего в любой книге Excel запустить макрос на запись, построить простейшую диаграмму, остановить макрос, а затем его просмотреть — там все достаточно просто. Значение констант (типа xlColumnClustered) можно посмотреть через View — Object Browser в Редакторе Visual Basic, методы (например SetSourceData) просто в справке.
Удачи.
Если б я умел так программировать…
Ной Вы супер!
(36) Если Вы не умеете программировать, то чего вы хотите? Есть пожелания — велкам в раздел «работе». оговариваем деньги и сроки, и нет проблем.
(37) =) ДЫк я учусь! и не понятно ваше «то чего вы хотите»?, я же на сказал что я вообще не умею… так что Вы, Дядько, ошиблись =)
(38) Признаю, был не прав, как говорится, «не в то окно» отправил 🙂
(39) =) Опа… 1с-ный умор…
Прикольно! =) МОжешь в личку еще подобных фраз накидать ?? а я на курсах потом повыеживаюсь =)
Не работает выгрузка Перечисления. На строке «Ексель.Range(Область).Validation.Add(3,1,1,(«=»+ОбластьЗначений));» вылетает с ошибкой
В «закрытой» версии то же самое.
Перечисление было Булево Да/Нет
(41) Это Excel «выеживается» — попробуй на другом компьютере запустить.
Сам замечал тоже самое, причем как-то странно — сегодня есть, завтра нету…
природу глюка так и не понял.
+(41) Excel 2003. Ставит 2007-й не собираюсь, т.к. привык к этому.
И еще забыл, респект свой выразить.
Долго искал что-то подобное, т.к. необходимо бывает выверить данные раздав их исполнителям и после внести в базу. Думал (если не найду
(41) Спасибо, что опять поднял тему этого глюка — теперь на свежую голову нашел в чем дело.
Все зависит от стиля ссылок, который устанавливается в параметрах (R1C1 ил A1,B1 и тд).
Перезалил обновленную (и открытую) версию…
Спасибо большое. Было бы супер если выгрузить всех справочников разом по листам Excel книги
(45) Это уже будет какой-то «грабер» информации из базы 🙂
Не представляю где и кому может такое понадобиться.
спасибо тебе умный человек!!! Очень поможет найчиться с экселём работать и еженедельные отчеты выгружать! Плюс тебе однозначно =)
очень миленькая обработка.Благодарю за остроумие Автора!
(49) Судя по всему мою обработку ты даже не смотрел.
(52) Просто именно так, как ты указал в (49) в моей обработке и реализовано — отдельная колонка для ЗначениеВСтроку(), а наименования используются как идентификатор только в перечислениях и справочниках типа «Валюта» для указания реквизитов справочника, который редактируется.
Правда в примечание пихнуть не догадался — хотя и не сильно надо…
При попытке выгрузки справочника Контрагенты вылетает ошибка:
Если (нужныйСправочник.ОсновноеПредставление<>»ВВидеНаименования») тогда
{…1CV77REF2XLS_V2_OPEN.ERT(259)}: Поле агрегатного объекта не обнаружено (ОсновноеПредставление)
При выгрузке справочника Цены выгружаются цены без привязки к номенклатуре. Работать с ними нельзя. Я так понимаю, это происходит из-за того, что обработка не работает с подчиненными справочниками.
По первой ошибке — так сразу и не скажу — надо бы в отладчике покрутить (может там реквизит неопределенного вида).
Да, обработка не работает с подчиненными справочниками, хотя там подправить недолго…
при выгрузке номенклатуры не выгружается цена…
как сделать выгрузку с ценой ?
57. не выгружается поскольку незачем, цены там правятся по другому.
а как выгрузить номенклатуру с ценой в эксель и обратно потом
На скорую руку добавил вывод Владельца — можете редактировать цены.
Класс!!
Уже давно сказал + за хорошее исплонение, но вот представился случай непосредственно попробовать. Скажу так: мне очень понравилось!!! обработка работает стабильно с разными базами! Есть конечно некоторые минусы, но их можно решить и ручками. Автор молодец!
норма
отлично просто! плюс
автору — еще бы добавить возможность корректировки цен
Блин! Чертовски хочется все это под 8.1 !!!
(65) Берет код 7-ки и переписываете под 8-ку. Тем более автор прокомментировал всю работу с экзелем.
Эта прога мне пригодится, я пользователь 1С 7,7,
но дилетант. Прогу скачал, а как ее запустить чтоб работала?
Сорри )))
(67) В 1С меню Файл — Открыть — выбираешь скачанный файл…
ЗАМЕЧАТЕЛЬНАЯ ВЕСЧЬ, автору респект +
Супер! «+»
Супер мульон плюсов, кто нибудь что нить подобное для 8 ки видел
Обработка очень хорошая. Дурацкий вопрос.Как с помощью нее загнать базовую цену, если остатка на складе еще нет (для прайса).
Почему-то часто не видит изменений, г-рит, что данные в файле и справочнике идентичны :(, хотя реквизит полностью перезаполняется.
А можно её доработать чтоб на 8-ке работала?
Такая же ерунда как у NushaN:
Почему-то часто не видит изменений, г-рит, что данные в файле и справочнике идентичны :(, хотя реквизит полностью перезаполняется.
(75) , (73) Сбросьте мне два Excel-файла — до изменений и после — я попробую разобраться в чем дело.
fn()inbox.ru
Спасибо автору.
Одна проблема. При загрузке кидает товар мимо папок групп. В чем причина?
Пробовал и в 2003 и в 2007. Такая же история.
(77) Если вы про «новый» товар — то так и должно быть. Раскидывать дальше нужно ручками.
Обработка позиционируется как «редактор» а не «импорт» соответственно и функционал по импорту только базовый.
(78) Спасибо.
Жаль, что не раскидывает «новый» — это было бы вообще супер.
Но даже в таком состоянии — это лучшее, что я нашел.
(76) Ну и как? Сбросили они вам? Разобрались?
Я тоже заметил: вносил изменения во все элементы — но в одном из них изменение не фиксировалось. Справочник подчиненный (если это имеет какое-нибудь значение)
(80) Нет, никто не откликнулся.
(81) Если снова столкнусь с таким эффектом — какие файлы вам выслать?
1. До изменений (только что выгруженные данные)
и
2. После изменений (если изменения не определяются).
(82) лучше оба. если не получится — то хотя бы ‘после изменений’
(83) Файлы отправил на указанный адрес.
Почему-то вышли большие. Хотя всего по 15 строк, а письмецо получилось на 10 мб.
Почтовый ящик выдержит?
(84) Ящик выдержал 😉
теперь о проблемах этой обработки:
файлы получаются большие — потому что я использую предпоследние колонки и предпоследние строки для хранения служебной информации.
проблема из (80) — глюк в коде обработки — последний элемент не записывается (точнее не анализируется).
С целью ускорить сравнение реквизитов я использовал хитрую (как я тогда думал) конструкцию — в конец файла (предпоследние колонки) добавлял что-то типа контрольной суммы (простая функция СЦЕПИТЬ). В процессе загрузки обработка проверяет только равенство предпоследних колонок — если они равны — реквизиты элемента не проверяются.
А на практике такая конструкция привела к тому, что если в редактируемом файле поменять структуру (достаточно добавить/удалить колонку), то предпоследние колонки «съезжают» со своих мест и обработка начинает работать неправильно. (так скорее всего и произошло в (73),(75)) .
Исправить этот глюк можно просто:
закомментировать строку 573
тогда загрузка будет более медленная, но будут сверятся все элементы.
Сорри, если эта недоработка принесла кому-нибудь серьезные неудобства.
(85) Спасибо.
У меня, правда, номер строки немного другой — но не далеко от указанного.
Теперь, кажись, порядок.
Отличная обработка, честно отработала. Спасибо огромное. Плюсую с удовольствием.
Я сама не программист, но пытаюсь облегчить себе работу при помощи вашей обрабраки:-) Может подскажите выбивается ошибка при попытке загрузки, как ее исправить…….
Если (ТекРеквизит.Тип=»Строка») или (ТекРеквизит.Тип=»Число») или (ТекРеквизит.Тип=»Дата») или (ТекРеквизит.Тип=»Перечисление») или (ТекРеквизит.Тип=»Справочник») тогда
{C:DOCUMENTS AND SETTINGS1С ПРИМОЧКИREF2XLS_V2_OPEN.ERT(534)}:
Буду очень признательна!:-)
и еще Поле агрегатного объекта не обнаружено (Тип)
😉
сама разобралась Все НО…… спасибо!!!!! 😳
Я знал, что такая обработка должна существовать, только найти не мог!
(93) пожалуйта.
приходите еще…
И у меня почему-то не видит изменение, тоже говорит, что данные в файле и справочнике идентичны , хотя реквизит полностью перезаполняется. Если разобрались с этой проблемой подскажите. Может быть потому что реквизит периодический?
(95) колонки добавлял или удалял…
смотри (85) — там описана такая ситуация
Я закоментировала эту строку, теперь не говорит что данные в файле и справочнике идентичны, но при загрузки не заменяет изменённый реквизит.
(97) Периодические реквизиты менются на ТекущаяДата().
Отчет о загрузке изменений в справочник показывает изменения? Тип значения реквизита какой?
нет не показывает, меняю счет затрат в основных средствах
(99)
…
Появилась возможность редактировать Перечисления с контролем правильности заполнения.
Появилась возможность редактировать реквизиты типа «Справочник», но с небольшими ограничениями
….
Данная обработка не редактирует такие типы значений. Для более комфортной работы не используйте режим «Не защищать лист (не рекомендуется)».
В других режимах (с защитой листа) значения, которые обработка не обрабатывает, будут защищены от редактирования.
Нормальная и очень нужная штука
удобно очень, советую
Ух ты какая шикарная штука!
Если у справочника есть реквизит типа справочник неопределенного вида, то выдает ошибку
Если (нужныйСправочник.ОсновноеПредставление<>»ВВидеНаименования») тогда
{REF2XLS_V2_OPEN.ERT(270)}: Поле агрегатного объекта не обнаружено (ОсновноеПредставление)