7.7 загрузка из dbf

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

  1. TopicStarter Overlay
    lebron111
    Offline

    lebron111

    Регистрация:
    31 май 2019
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    подскажите пожалуйста как сделать чтоб при нажатии на кнопку выгрузга элементов проверялась и второй раз не выгружалась а выдавала сообщение что выгрузгра была произведена Вот код:
    Процедура ВыбратьФайл()
    Перем Каталог,Подсказка;
    Каталог = КаталогИБ();
    Подсказка = "Текстовый файл в формате dbf (*.dbf)|*.dbf|Все файлы (*.*)|*.*"; // фильтр
    Если ФС.ВыбратьФайл(0,ФайлЗагрузки, Каталог,
    "Выберите файл",Подсказка,"dbf",30 )=1 Тогда
    ФайлЗагрузки=Каталог+ФайлЗагрузки;
    КонецЕсли;
    КонецПроцедуры


    Процедура Загрузка()
    Если ПустоеЗначение(ФайлЗагрузки)=0 Тогда
    ДБ=СоздатьОбъект("XBase");
    ДБ.ОткрытьФайл(ФайлЗагрузки,,);
    ДБ.КодоваяСтраница(1);
    Если ДБ.Открыта()=0 Тогда
    Предупреждение("Плохой dbf-файл!",1);
    Возврат;
    КонецЕсли;
    КолВоСтр=ДБ.КоличествоЗаписей();
    Если КолВоСтр=0 Тогда
    Сообщить("Нечего загружать!");
    Возврат;
    КонецЕсли;
    Спр=СоздатьОбъект("Справочник.Продукция");
    ДБ.Первая();
    Для кт=1 По КолВоСтр Цикл
    Спр.Новый();
    Спр.Наименование=ДБ.Nazv;
    Спр.Себестоимость=ДБ.Cena;
    Спр.Отдел=ДБ.Otdel;
    Спр.Наценка=ДБ.Procent;
    Спр.ДатаИзготовления=ДБ.Data;
    Спр.Записать();
    ДБ.Следующая();
    КонецЦикла;

    Иначе сообщить("Укажите файл загрузки.");
    КонецЕсли;
    Предупреждение("Загрузка завершена")

    КонецПроцедуры
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    22.569
    Симпатии:
    539
    Баллы:
    204
    Если ФС.СуществуетФайл(ФайлЗагрузки)=1 Тогда
    Предупреждение("Файл уже есть");
    КонецЕсли;
  3. TopicStarter Overlay
    lebron111
    Offline

    lebron111

    Регистрация:
    31 май 2019
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Где этот код нужно вставить чтоб он правильно работал???
  4. TopicStarter Overlay
    lebron111
    Offline

    lebron111

    Регистрация:
    31 май 2019
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Нет. Ты не правильно понял мне не файл нужен, а именно чтоб я вот выгрузил эти данные один раз чтоб второй раз их не было а не именно чтоб файл не выгружался просто документ изменяется а мне надо чтоб данные которые есть не выгружались повторно!
  5. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.552
    Симпатии:
    59
    Баллы:
    54
    ты уж как-то определись, - в коде процедура Загрузка(), а в сообщениях ты про какую-то выгрузку спрашиваешь
  6. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    535
    Симпатии:
    83
    Баллы:
    54
    Здравствуйте.
    Если я правильно понимаю, нужно, чтобы повторно в справочник не записывались уже имеющиеся элементы?
    Тогда перед Спр.Новый() поставьте (примерно такое) условие Если Спр.НайтиПоНаименованию(ДБ.Nazv)= 0 Тогда
    То есть Вы будете создавать новый элемент, только если еще нет с таким же наименованием.
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    22.569
    Симпатии:
    539
    Баллы:
    204
    Думаю не правильно... Искать похоже дубли надо в DBF... Если автор под DBF не подразумевает файл справочника самой БД...
    Судя по постам - с него станется
  8. Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    535
    Симпатии:
    83
    Баллы:
    54
    Да уж... техническое задание на высоком уровне. В любом случае, мой совет не будет лишним, иначе придется дубли вручную из справочника удалять. ))
  9. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    22.569
    Симпатии:
    539
    Баллы:
    204
  10. TopicStarter Overlay
    lebron111
    Offline

    lebron111

    Регистрация:
    31 май 2019
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    спасибо! а если проверять не по наименованию а по наценке или по себестоимости?
  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    22.569
    Симпатии:
    539
    Баллы:
    204
    Тогда нужно использовать метод НайтиПоРеквизиту. В свойствах реквизита д.б. установлена галка "отбор по реквизиту"