Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Импорт счета при импорте справочников
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
dobruan
Ставится задача из *.xls файла импортировать данные в справочник(справочник ОС). Всё гуд, вот только счет учета и счет затрат есть или фиксированное значение, или не импортировать. Почему не дает выбор.

Импорт делаю стандартной обработкой refimport.ert.

vadim007
Кто не дает выбор?
dobruan
Цитата(vadim007 @ 12.03.13, 16:29) необходимо зарегистрироваться для просмотра ссылки
Кто не дает выбор?
Обработка.


Я подумал, если стандартная обработка и не даёт выбора. Почему?

Или это простая недоработка(лень было писать)?

Sharzem
Цитата(dobruan @ 12.03.13, 18:12) необходимо зарегистрироваться для просмотра ссылки
Или это простая недоработка(лень было писать)?


Она Универсальная. Вам дальше нужно использовать СтрЧислоВхождений(). Дорабатывайте, если желание есть. Иначе никак.
dobruan
Цитата(Sharzem @ 12.03.13, 18:35) необходимо зарегистрироваться для просмотра ссылки
Она Универсальная. Вам дальше нужно использовать СтрЧислоВхождений(). Дорабатывайте, если желание есть. Иначе никак.
Можете подробно, что быстрее было разобраться? Может имели дело с такой ситуацией?


Sharzem
Цитата(dobruan @ 12.03.13, 18:45) необходимо зарегистрироваться для просмотра ссылки
Можете подробно, что быстрее было разобраться? Может имели дело с такой ситуацией?


Данную обработку не использовал. В основном писал сам. Щас пример выложу.

Вы уже скорее всего загрузили справочник ОС с помощью данной обработки.
Далее типа что-то такого:
//===============================================================================
Функция КаталогФайла(Файл="")
    
    Каталог=""; Файл=ПутьФайла; Разд=Найти(Файл, "\");
    
    Пока 0<Разд Цикл
        Каталог=Каталог+Лев(Файл, Разд); Файл=Сред(Файл, Разд+1); Разд=Найти(Файл, "\");
    КонецЦикла;
    
    Возврат(Каталог);
    
КонецФункции // КаталогФайла()
//================================================================================
=
Процедура ПриНачалеВыбораЗначения(Элемент, Продолжать) // предопределенная процедура
    Перем Файл; Каталог=КаталогФайла(Файл);
        
    Если Элемент="ПутьФайла" Тогда
        Выбор=ФС.ВыбратьФайл(0, Файл, Каталог, "Файл загрузки", "Таблицы (*.xls)|*.xls", "xls");
        Если Выбор=1 Тогда ПутьФайла=Каталог+Файл; КонецЕсли;

        Попытка
            Excel = СоздатьОбъект("Excel.Application");
        Исключение
            Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
            Возврат;
        КонецПопытки;
            
        Попытка
            Книга = Excel.WorkBooks.Open(ПутьФайла);
        Исключение
            Предупреждение("Ошибка отрытия Книги " + ПутьФайла);
            Возврат;
        КонецПопытки;
        Строк = Excel.Cells.CurrentRegion.Rows.Count;
        Спр = СоздатьОбъект("Справочник.ОС");//Ваш справочник Основные средства
        НачатьТранзакцию();
        К = 0;
        Для СчетчикЦикла = 1 По Строк Цикл
            
            Если К = 100 Тогда // Транзакция по 100 элементов
                ЗафиксироватьТранзакцию();
                К = 0;
                НачатьТранзакцию();
            КонецЕсли;
            Наименование = СокрЛП(Строка(Excel.Cells(СчетчикЦикла, 1).Value));
            КодСчетаУчета =СокрЛП(Строка(Excel.Cells(СчетчикЦикла, 2).Value));  
            КодСчетаЗатрат=СокрЛП(Строка(Excel.Cells(СчетчикЦикла, 3).Value));
            Если Спр.НайтиПоНаименованию(Наименование) = 1 Тогда
                Спр.СчетУчета = СчетПоКоду(КодСчетаУчета);
                Спр.СчетЗатрат = СчетПоКоду(КодСчетаЗатрат);
                Спр.Записать();
            КонецЕсли;
            Состояние(СчетчикЦикла);
        КонецЦикла;
        ЗафиксироватьТранзакцию();
        Excel.Quit();
    КонецЕсли;
КонецПроцедуры


Где нужно - поправите, это только пример дозагрузки 2 реквизитов в уже созданный справочник.
dobruan
Буду пробовать.

Если что, отпишусь.

Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.