Для мелких и очень мелких 1С — это дорого (ноутбук стоит дешевле). Поэтому практикуется такой порядок работы: в центральном офисе выгружают в Excel из 1С "Продажный лист"; торгуют и отмечают продажи в файле; приносят в офис вечером файл результата и загружают отчет о продажах за день.
Грузить можно и заявки, и перемещения, и поступления, и списания, и счета, и все для ОС, НМА, МБП… была бы табличная часть!
По мотивам УПБ01.ert — Удар По Бездуховности, версия 1.0д
Автор: Che Burashka
E-mail: e.meil@mail.ru
За что ему огромное спасибо!
Все его секретные кнопки тут рассекречены. Надеюсь за свои секреты он уже все деньги получил.
Особая благодарность автору внешней компоненты strmatch.dll
http://1c.proclub.ru/modules/mydownloads/personal.php?cid=5&lid=2485
Автор: Ракунов Александр.
E-mail: Skorp@newmail.ru
ICQ#: 63919227
Немного невнятно в описании компоненты сказано по поводу нескольких «Кэшей»:
возможны два и более Кэш по разным справочникам одновременно?
Если да, то теорию можно развить до бесконечности.
Также благодарность автору библиотеки V7XLSD7.dll .
Недавно появилась и очень интересная штучка — использована способность открывать XLS файлы и не заботиться о их закрытии даже в случае аварийной ситуации.
Порядок работы:
- Выбрали XLS файл (пункт 1) и он тут же загрузился в таблицу значений (окно 1). Ход загрузки отображается в строке состояния. Предполагается, что Excel файл имеет заголовки столбцов (строка 1 пункт 5а).
- В таблице (окно 2), отображается номер или название столбца входного Excel файла.
Рядом с названием «Столбец» еще один столбец «Значение» — для сопоставления реквизитов документа и загружаемого файла, а фактически уже таблицы значений. - Выбираем из окна «Документ» тот вид документа, который должен быть создан или догружен в результате выполнения обработки.(пункт 2)
- В окно списка реквизитов документа выводятся общие реквизиты, реквизиты шапки документа и реквизиты табличной части документа. Основная потребность, конечно же грузить в табличную часть, но и шапка может быть автоматически загружена. (Правда существует необходимость повторять реквизиты шапки в каждой строке Excel файла (таблицы значений)).
Отмечаем (окно 3 пункт 3) все реквизиты, которые собираемся грузить. - Выбираем реквизит по которому будем проводить нечеткое сравнение (окно 4 пункт 4).
- Если количество элементов для нечеткого сравнения в исходном файле с одинаковым названием велико, пытаемся построить комплексный ключ («Наименование») для качественного поиска. В окно объединяемых столбцов, через запятую вписываем номера столбцов, которые хотим объединить.(пункт 5б) Последним записываем номер столбца с наименованием по которому будем осуществлять нечеткий поиск. (Помните! Это сработает, если в справочнике (например: «Номенклатура»), для нечеткого сравнения, наименование элемента уже содержит объединяемые Вами (например: «Артикул» И «Наименование») ячейки). Вам заранее следует думать о названии элементов справочника, если собираетесь использовать нечеткое сравнение.(Пункт 5в)
Можно дорисовать еще одно окно, в котором информация по справочнику будет подготовлена с формированием комплексного ключа по любой комбинации атрибутов справочника («Артикул»+»Наименование»+»Партия»+»ДатаПоступления» и т.д.), Кэш «заглотит» это как источник поиска, а ссылка на объект в таблице значений останется примитивной. Но мне влом! Может когда … - Проводим сопоставление реквизитов Excel файла (таблицы значений) и выбранных для загрузки реквизитов, двойным щелчком мыши по полю «Значение» напротив названия нужного реквизита таблицы значений.(окно 2 пункт 6)
- Выбираем, при необходимости, документ, в который собираемся загрузить информацию. (не обязательно, документ будет создан автоматически, если окно останется пустым).(пункт 7)
- Нажимаем на кнопку «Загрузить документ».(пункт 8)
Контролируем окно сообщений… После подготовки информации откроется окно сравнения.
Интерфейс окна интуитивно понятен за исключением 2-х нюансов.
Если в справочнике нет загружаемой позиции (нет в режиме автоматического поиска; нет в режиме ручного выбора), вы можете создать необходимый элемент справочника на основе наиболее подобного ему. Для этого:
- Становитесь на строку «наиболее подобного» из 20 строк и выставляете флажок «хочу новый».
В таблице значений под окном сравнения появится список реквизитов элемента справочника и значения реквизитов взятые от «наиболее подобного». Наименование элемента будет заполнено значением несуществующего элемента. Реквизиты доступны для редактирования по двойному щелчку мыши. - Нажимаете кнопку «В справочник» и созданный таким образом новый элемент справочника будет записан, и автоматически выбран в документ.
Желаю приятной работы.
скриншоты лучше нарисовал бы
Упомянутая в начале описания УПБ (Удар По Бездуховности) лежит здесь:http://infostart.ru/projects/393/
«…столбец ЗПТ соответстсвующий…»
Скриншот внутри архива
Если вопрос ведется о стоимости 1С, то надо учесть, что MS Office не на много дешевле (если вообще дешевле)…
Т.НоваяКолонка(ИД,,,,,30);
Недопустимый идентификатор колонки!
ошибку выкидывает
(6) В Excel у колонки болжен быть заголовок в 1 й строке. Нельзя подсовывать что попало…
(6) А что Вы грузите? Вышлите на ge_ni@mail.ru? Не мои это ошибки…
(5) Есть у меня MS ценник. Есть у меня MS Office официальный. Большинство же не покупает, и что будем делать …?
(6) Возможно у Вас не загружена V7XLSD7.dll
…
ЗагрузитьВнешнююКомпоненту(КаталогПрограммы() + «V7XLSD7.dll»)
При присваивании значений периодически выскакивает след глюк:
http://ipicture.ru/Gallery/Viewfull/23267821.html
реквизиты помеченные галочками — недоступны к выбору в окне2 п6, чтобы была возможность выбрать там необходимо несколько раз ставить и убирать галочки.
скрин
В окно подбора похожей номенклатуры, в строку excel; наименование аналога попадает только 70 символов, как можно увеличить??
http://ipicture.ru/Gallery/Viewfull/23268017.html
скрин
с глюком разобрался, все нормально если выбор реквизитов делать двойным кликом.
При попытке записи номенклатуры на основании аналога, номенклатура записывается без наименований(сокращенного и полного)
Тем кто обращается ко мне по поводу обработки: «Спасибо вам за вопросы, я тронут вниманием» — хочу только заметить, то я так же как и вы вижу её в первый раз. То что тут используется моя компонента для нечеткого сравнения не наделяет меня знанием о форматировании файла Excell и т.п. У обработки есть автор, я уверен, он будет рад ответить на ваши вопросы.
Автору в ответ на:
«Немного невнятно в описании компоненты сказано по поводу нескольких «Кэшей»:
возможны два и более Кэш по разным справочникам одновременно?»
— Кешей может быть сколько угодно. Кеши полностью независимы и не знают друг о друге. Загонять в них можно в текстовом виде все что угодно. К какому кешу обращаетесь указавается произвольно выбранным id, главное, что бы при создании и при работе с кешем это был один и тот же id.
Спасибо за использование компоненты.
(12) Все под контролем!? Когда Вы пытаетесь создать новый элемент справочника, вы видите и Наименование и полное наименование и даже код, до того как записать его и выбрать. Далее действует запись атрибутов из табмицы значений в реквизиты справочника и все … ??? Это называется: попробуйте еще раз !? Пришлите в конце концов то, что грузите я себе создам и загружу
плюсанул за длинное, подробное описание, саму обработку не качал, без надобности на данном этапе)
Не грузится единица в реализацию
Если Единица, тип — текст в 1С, или Единица — справочник — тогда может быть только ошибочный заголовок столбца Excel. Кстати для всех!!! Заголовок столбца в Excel должен состоять из одного слова, т.к. таблица значений не переваривает названия столбцов из 2х и более слов.
(16) Если Единица — перечисление, тогда замените строку модуля обработки ЗагрузкаЛюбыхДокументов.ert №781 на
Пер=Метаданные.РеквизитТабличнойЧасти(ИмяРеквизита);
Идея отличная я давнотакую искал, но нуждается в срочной доработке!
http://infostart.ru/public/22197/ она все таблици читает, правда есть свой глюк виснет но зато читает любые документы! http://infostart.ru/public/download.php?file=56737
Т.К. если в exl таблици совмещены — обьеденены столбци то она её не видет нельзя ли ТЗ сделать на подобе как тут
Хорошая штука загрузила «отгрузку товаров», очень лояльно относится к названию товара выбирает достаточно правильно. Вот знать бы еще как в «окно 3» добавить параметр «код товара» чтоб можно было по артикулам загружать, а не по наименованию. Мой плюс. И спасибо.
(19,20) Очень занят… Как освобожусь обязательно добавлю эти моменты
При попытки загрузить документ пишет следующее: ПромТекст=ПромТекст+СокрЛП(ТЗ1.ПолучитЗначение(ТЗ1.НомерСтроки,НомерСтолбца));
{C:DOCUMENTS AND SETTINGSАдминРАБОЧИЙ СТОЛЗАГРУЗКАИЗEXCELЗАГРУЗКАЛЮБЫХДОКУМЕНТОВ.ERT(548)}: Поле агрегатного объекта не обнаружено (ПолучитЗначение)
И ничего не формирует.
(22) Приношу свои глубокие извинения за недочёт: т.к. «.ПолучитЗначение» — содержит синтаксическую ошибку, видимо редко кто попадал в это состояние и я не заметил при тестировании! 😳 😳 Нужно «.ПолучитьЗначение» Ай — яй- яй -яй яй!!! 😥
ставлю «+» за подробное описание, за проделанную работу
Жаль что так и не добавили поиск по артикулу. Если в экселе строка наименование больше 30символов(с пробелами)тогда при загрузке ТЧ пишет Т.НоваяКолонка(ИД,,,,,30) когда пообрезала по 30символов ТЧ загрузилась. Дальше прогнал номенклатуру так и не выдал совпадений наверное строка «Бумага А4 «Снегурочка»» отличается от «Бумага А4 «Снегурочка» 80грм 500л». Компоненты все загрузила. Может ошибка из-за того что у меня платформа установлена не через setup я ее просто скопировала.
Тоже ставлю «+»
Эх…по 8-чке бы такое действо.
одназначно +, немного переписал по нужды компании, а вцелом — Шекарно
(23)ge_ni, будет ли сделана идентификация существующих элементов справочника по загружаемым кодам, для загрузки в документ?
Замените в запросе
ТекстЗапроса = »
|Обрабатывать НеПомеченныеНаУдаление;
|Элемент = *.ТекущийЭлемент;
|Наименование = *.Наименование;
|Функция Хеш = Сумма(0);
|Группировка Элемент Упорядочить по Элемент.Наименование Без Групп;
|»;
ТекстЗапроса=СтрЗаменить(ТекстЗапроса,»*»,ТипСпра);
Запрос = СоздатьОбъект(«Запрос»);
Если Запрос.Выполнить(ТекстЗапроса)=0
Тогда Возврат;
КонецЕсли;
*.Наименование;
на
*.Код;
Но тогда и в Excel один из столбцов, по которому Вы собираетесь грузить, должен содержать не наименования, а коды элементов справочника
(31) как отключить нечеткое сравнение? при загрузке документа выскакивает подбор элементов, в которых совпадает:
1)часть НАИМЕНОВАНИЯ элемента
и 2) код из Excel.
Или он должен предлагать элемент совпадающий по коду, а не по части наименования.
Грузить автоматически, как не крути, не получится. Особенность нечеткого сравнения в том, что в списке подбора для кода (например 36), первой строкой (значением по умолчанию) может быть вначале
136
236
и только после этих значений
36
ну и далее
336
4336
Поиск по коду эффективен если «Тип кода» текстовый и все коды имеют одинаковую длину, например 7 символов.
в этом случае код 0000036 находится однозначно…
И значит в обработке можно поставить флаг «грузить накладную автоматически»
что еще нужно быдо доправить:
1-ну строчку
——-> ТЗ.Представление = СокрЛП(ТЗ.Элемент.Код);
//ТЗ.Представление = СокрЛП(ТЗ.Элемент.Наименование);
ТЗ.ИД = СтрЗаменить(ВРег(ТЗ.Представление),» «,»»);
хеш = хеш + 1;
ТЗ.Хеш = хеш;
Адин.ДобавитьВКэш(Кеш,СокрЛП(ВРег(ТЗ.ИД)),хеш,СокрЛП(ТЗ.Элемент.Код));
(33) теперь подбор элементов выдает нужные элементы, щелкаешь по первому, сообщение об ошибке: > НАЧАЛО: ПРИЕМ ИНФОРМАЦИИ ИЗ ФАЙЛА <C:DOCUMENTS AND SETTINGSBUH5МОИ ДОКУМЕНТЫМОИ ЭЛЕКТРОННЫЕ КНИГИЛИСТ MICROSOFT EXCEL.XLS>
> обработка строки накладной 0001: элемент 40119 СДЕЛАН ВЫБОР: (40119) Рычаг 24-14-104СП
ДокЗаявка.УстановитьАтрибут(ИмяРеквизита,ЗначениеРеквизита);
{C:BASES_1S1SBDBEXTFORMSЗАГРУЗКАЛЮБЫХДОКУМЕНТОВ.ERT(808)}: Неверное имя атрибута
Вчера специально установил 7ку и загрузил «Приходную накладную» по Вашему принципу: сопоставив столбец файла Excel «Код» и реквизит накладной «Товар»… и … всё загрузилось
У Вас проблемма с именем реквизита, который соответствует справочнику подбора по нечеткому поиску. т.е. «код» соответствует реквизиту «Товар» или реквизиту «Материал» или реквизиту»ОС» и т.д.
Ошибка при создании объекта из компоненты C:Program Files1Cv77BINStrMatch.dll (отсутствует CLSID)
> Отказано в запуске обработки
> Не найдена компонента StrMatch.dll (нечеткое сравнение строк)
Регистрация компоненты прошла успешна! Как быть дальше?
Ошибка при создании объекта из компоненты C:Program Files1Cv77BINStrMatch.dll (отсутствует CLSID)
> Отказано в запуске обработки
> Не найдена компонента StrMatch.dll (нечеткое сравнение строк)
Доброе время суток. Установка компоненты прошла успешно! Но увы! Как быть дальше?
Здравствуйте! Это чисто теоретически «Успешно». На самом деле Win 7 и не думал регистрировать её на вашем компьютере. Судя по всему Вы не «Администратор», хотя и числитесь наверное в списке «Администраторов». Для начала попробуйте запустить 1С от имени «Администратора». Если не поможет — нужно создать ярлык работы в режиме командной строки, запустить этот ярлык от имени «Администратора» и повторить регистрацию компоненты в командной строке…. Всё относится к периоду, когда царствовал WinXP и всё регистрировалось «в лёт» … У Win 7 к сожалению через обряд…
Кстати лучше погуглите регистрацию библиотек для Win 7 . Вариантов решения в интернете море. Обработка как бы не сильно заморочена на регистрацию компонент, всё в традиции 1С…