Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Импорт счета при импорте справочников          
dobruan Подменю пользователя
сообщение 12.03.13, 16:13
Сообщение #1

Оратор
*****
Группа: Пользователи
Сообщений: 264
Из: Закарпатская обл
Спасибо сказали: 14 раз
Рейтинг: 0

Ставится задача из *.xls файла импортировать данные в справочник(справочник ОС). Всё гуд, вот только счет учета и счет затрат есть или фиксированное значение, или не импортировать. Почему не дает выбор.

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


vadim007 Подменю пользователя
сообщение 12.03.13, 16:29
Сообщение #2

Почти крутой
Иконка группы
Группа: Местный
Сообщений: 1298
Из: Донецк
Спасибо сказали: 208 раз
Рейтинг: 0

Кто не дает выбор?

dobruan Подменю пользователя
сообщение 12.03.13, 18:12
Сообщение #3

Оратор
*****
Группа: Пользователи
Сообщений: 264
Из: Закарпатская обл
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(vadim007 @ 12.03.13, 16:29) *
Кто не дает выбор?
Обработка.


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

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


Sharzem Подменю пользователя
сообщение 12.03.13, 18:35
Сообщение #4

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

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


Она Универсальная. Вам дальше нужно использовать СтрЧислоВхождений(). Дорабатывайте, если желание есть. Иначе никак.


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

dobruan Подменю пользователя
сообщение 12.03.13, 18:45
Сообщение #5

Оратор
*****
Группа: Пользователи
Сообщений: 264
Из: Закарпатская обл
Спасибо сказали: 14 раз
Рейтинг: 0

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



Sharzem Подменю пользователя
сообщение 12.03.13, 19:14
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 298
Спасибо сказали: 98 раз
Рейтинг: 99.1

Цитата(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 реквизитов в уже созданный справочник.


Signature
То, что для одного человека константа, для другого - переменная. (Алан.Дж.Перлис)

Спасибо сказали: dobruan,

dobruan Подменю пользователя
сообщение 12.03.13, 20:07
Сообщение #7

Оратор
*****
Группа: Пользователи
Сообщений: 264
Из: Закарпатская обл
Спасибо сказали: 14 раз
Рейтинг: 0

Буду пробовать.

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


Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.05.24, 14:03
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!