7.7 Выгрузка-загрузка справочника

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем dummyguy, 31 июл 2008.

  1. TopicStarter Overlay
    dummyguy
    Offline

    dummyguy

    Регистрация:
    28 мар 2008
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Привет знатокам 1С!

    Задача: требуется заполнить вновь добавленный реквизит в справочнике данными из внешней системы.

    Условие: требуется использовать внешнюю программу (java), поск-ку данные для наполнения оч. громоздкие и в XML, да и процедура поиска строки справочника для заполнения нетривиальная.

    Ограничение: навыки работы в 1С - начальные.

    Вопрос: как написать обработку по выгрузке/загрузке через файл?
    Можно ли посмотреть какой-нибудь пример?

    С уважением,
    dummy
  2. bob
    Offline

    bob Опытный в 1С

    Регистрация:
    7 май 2008
    Сообщения:
    386
    Симпатии:
    0
    Баллы:
    26
    я не очень понял, какую роль должна играть "внешняя программа (java)". При выгр/загр величина файла пофиг какая.
  3. TopicStarter Overlay
    dummyguy
    Offline

    dummyguy

    Регистрация:
    28 мар 2008
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    поиск соответствия строки файла внешней системы и строки выгруженного справочника - сочетание
    алгоритма и диалога

    а как насчет примера обработки (выгрузки/загрузки)... ?

    я сам примерно знаю, как это сделать

    создать объект (справочник)
    наполнить
    создать файл
    сохранить в файл

    но не уверен, поэтому и прошу пример
  4. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Используй встроенные средства. При выгрузке и загрузке справочника ты выйгрыша не получишь, т.к. эти операции длятся намного дольше, чем простой перебор строк справочника.
  5. TopicStarter Overlay
    dummyguy
    Offline

    dummyguy

    Регистрация:
    28 мар 2008
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Встроенные - это вручную заполнять поле справочника через форму?

    Решение понятно, но хотелось бы и есть нужда сделать некую utility, к-рую можно было бы отдать пользователям и к-рая облегчила бы им жизнь.
    Да и коды, к-рые им нужны, трудно найти вручную в справочнике на 130+ тыс. позиций

    Время выгрузки загрузки несущественно, ведь эта процедура должна выполняться по мере необходимости пополнения справочника отсутствующими кодами, а номенклатура товаров меняется не слишком часто.

    Повторю вопрос: нужен самый простой пример, чтобы начать работу.
  6. Kaboom
    Offline

    Kaboom Опытный в 1С

    Регистрация:
    2 июл 2007
    Сообщения:
    158
    Симпатии:
    0
    Баллы:
    26
    А формат файла какой? Для экселя один пример, для ХМL другой, еще есть простой текстовый файл ...
    Это во первых, во вторых - есть ли поле по которым будет осуществляться синхронизация? Без такого поля (или группы полей) синхронизация на 130 тис. позиций не представляется возможной.
    Примерный алгоритм:
    1. Получаем ключевое поле из файла.
    2. По ключевому полю ищем элемент справочника.
    3. Считываем данные из файла.
    4. Записываем данные в справочник.
  7. TopicStarter Overlay
    dummyguy
    Offline

    dummyguy

    Регистрация:
    28 мар 2008
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Я предполагал сделать иначе:
    - загрузить внешний справочник в неск-ко hashmap - так получится неск-ко индексов,
    - выгрузить записи справочника 1С, к-рые требуют дополнения в текстовый файл с разделителями
    - разбивать наименование товара 1С на части (tokenize) и прогонять эти части через индексы
    - вычислять веса записей внешнего справочника и отбирать десяток - два из них, сортировать и показывать пользователю для принятия решения

    По окончании процедуры выгружать обработанные записи справочника 1С в файл
    и еще одной обработкой дополнять справочник 1С новыми полями - здесь уже возможно однозначное сопоставление.

    И все же, кто-нибудь покажет пример на языке 1С по выгрузке справочника в файл и загрузки назад?

    Как видно из описания процедуры,
    трудность в том, что НЕТ ключевого поля для связи справочников и приходится искать нечеткое соответствие наименований продуктов разбивкой текстового наименования на фрагменты и сортировкой рез-та по макс.соответствию.
    Решение о выборе принимает пользователь в диалоге.

    Я сам не пробовал выгружать целый объект справочника 1С в файл и не знаю в каком формате он окажется.
  8. bob
    Offline

    bob Опытный в 1С

    Регистрация:
    7 май 2008
    Сообщения:
    386
    Симпатии:
    0
    Баллы:
    26
    в принципе структура выгруженного из 1С файла может быть любой. Формат тхт, dbf, xml мож еще какие забыл. Тут надо подходить так, чтобы тебе было удобнее обрабатывать.
  9. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Нет, это написать внешнюю обработку на языке 1С, которая переберет все элементы справочника и заполнит необходимый реквизит значением, рассчитанным по произвольному алгоритму.
    А то, чем вы тут сейчас занимаетесь -- это создание себе проблем, чтобы их потом героически преодолевать (хотя преодолеть может и не получиться).

    И еще добавлю. Если у тебя хватит опыта, чтобы написать самостоятельно выгрузку/загрузку, то написать обработку по заполнению еще проще.
  10. TopicStarter Overlay
    dummyguy
    Offline

    dummyguy

    Регистрация:
    28 мар 2008
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Алгоритма выбора и заполнения как такового нету.

    Пользователь должен ВЫБРАТЬ строку из предложенного списка (программа помогает только сократить этот список).

    Попробуем повернуть обсуждение:

    Вопрос:
    можно ли в 1С ср-вами языка из (внешней) обработки загрузить InternetExplorer или прогу на java (через какой-нибудь exec или run)?
  11. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Можно

Поделиться этой страницей