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

Хранилище

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

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



> загрузка свойств номенклатуры из xls , нужна помощь в реализации          
Korotkiy Подменю пользователя
сообщение 12.07.17, 21:44
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 2
Спасибо сказали: 0 раз
Рейтинг: 0

Добрый вечер!
1с7.7 платформа 7.70.027
Типовая конфигурация "Торговля+Склад" редакция 9,2
Оптово-розничная конфигурация 7.70.935

Подскажите что у меня неправильно. Никак непойму чтото , выкидывает ошибку
Цитата
<<?>>Процедура ПоКнопкеЗагрузить() Далее
{H:\загрузка свойств.ert(56)}: Определения процедур и функций должны размещаться перед операторами основной программы

Ну и в целом правильно ли я написал ?
Вообщем нужно в номенклатуре присвоить ряд свойств. в ручную не вариант т.к. номенклатуры 50к позиций
решил сдалать обработку которая загрузит из экселя, в голове понимаю что должно быть , а вот с реализацией не очень ...
Перем НомерСтроки;   
Перем Ид;
Перем Эксель;
Перем Книга;
Перем Лист;
Перем ИмяФайлаЗагрузки;


Запрос = СоздатьОбъект("Запрос");
СпрСвойств = СоздатьОбъект("Справочник.ВидыСвойств");        
СпрЗначСвойств = СоздатьОбъект("Справочник.ЗначенияСвойств");
СпрСвойствНом = СоздатьОбъект("Справочник.СвойстваНоменклатуры");  


//******************************************************************************
// ПоКнопкеЗагрузить()
//
//
// Вызывается из формул элементов диалога:
//  Кнопка "Загрузить".
//
// Описание:  
//    Вызывается при нажатии кнопки "Загрузить". заполняются значения из таблицы эксель
//

Процедура  ПоКнопкеЗагрузить() Далее


//откроем эксель
    
        Попытка
        Эксель = СоздатьОбъект("Excel.Application");
        Исключение
        Сообщить (ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
        Возврат;
        КонецПопытки;

//откроем наш файл и установим параметры

        Если ПустоеЗначение(ИмяФайлаЗагрузки)=1 Тогда  
            Сообщить ("Не выбран файл для загрузки!");
            Возврат;
        Иначе
            Книга = Эксель.WorkBooks.Open(ИмяФайлаЗагрузки);
            Эксель.Visible=0;
               Эксель.DisplayAlerts=0;
               Эксель.ScreenUpdating = 0;
               Эксель.EnableEvents = 0;  
               Лист = Книга.WorkSheets(1);
           КонецЕсли;

//зациклим чтобы прочитать каждую строку
//получим значение ID из нашей таблицы
        НомерСтроки=1;
        
        Пока ПустоеЗначение (Лист.Cells(НомерСтроки, 1).Value)=0 Цикл    
            НомерСтроки=НомерСтроки+1;
            Ид=  Лист.Cells(НомерСтроки, 1).Value;
//найдем элемент номенклатуры по коду
            СпрСвойствНом.ИспользоватьВладельца(Запрос.Номенклатура);
            СпрСвойствНом.НайтиПоКоду(Ид);
                Если СпрСвойствНом.выбран()=1 Тогда
                СпрСвойствНом = СпрСвойствНом.ТекущийЭлемент();
//проверим совпадают ли артикулы
                    Если Запрос.Номенклатура.Артикул = Лист.Cells(НомерСтроки, 2).Value Тогда
//найдем значение производителя
                          СпрСвойств.НайтиПоКоду("20030");
//проверим заполнено ли оно
                        Если СпрСвойствНом.НайтиПоРеквизиту("ВидСвойства",СпрСвойств.ТекущийЭлемент(),0) = 0 Тогда
//присвоим значение полученое из таблицы
          
                        СпрСвойств.Новый();
                        СпрСвойств.ЗначениеСвойства = Лист.Cells(НомерСтроки, 3).Value;
                        СпрСвойств.ВидСвойства      = СпрСвойств.НайтиПоКоду("20030");
                            СпрСвойств.Записать();
                        КонецЕсли;
//найдем значение модель
                          СпрСвойств.НайтиПоКоду("20034");
//проверим заполнено ли оно
                        Если СпрСвойствНом.НайтиПоРеквизиту("ВидСвойства",СпрСвойств.ТекущийЭлемент(),0) = 0 Тогда
//присвоим значение полученое из таблицы

                        СпрСвойств.Новый();
                        СпрСвойств.ЗначениеСвойства = Лист.Cells(НомерСтроки, 5).Value;
                        СпрСвойств.ВидСвойства      = СпрСвойств.НайтиПоКоду("20034");
                            СпрСвойств.Записать();
                        КонецЕсли;
        
                    КонецЕсли;
                КонецЕсли;
        КонецЦикла;
        Эксель.Quit();  
КонецПроцедуры

1Cv77 Подменю пользователя
сообщение 12.07.17, 22:03
Сообщение #2

Завсегдатай
****
Группа: Пользователи
Сообщений: 195
Из: Украина, Мелитополь
Спасибо сказали: 61 раз
Рейтинг: 0

Korotkiy @ Сегодня, 20:44 * ,
Строки

Запрос = СоздатьОбъект("Запрос"); 
СпрСвойств = СоздатьОбъект("Справочник.ВидыСвойств");        
СпрЗначСвойств = СоздатьОбъект("Справочник.ЗначенияСвойств");
СпрСвойствНом = СоздатьОбъект("Справочник.СвойстваНоменклатуры");


Перенеси ЗА строчку
Процедура  ПоКнопкеЗагрузить() Далее



 ! 

Правила: 9
 


Сообщение отредактировал Vofka - 13.07.17, 7:59

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

Korotkiy Подменю пользователя
сообщение 12.07.17, 22:29
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 2
Спасибо сказали: 0 раз
Рейтинг: 0

1Cv77 @ Сегодня, 23:03 * ,

тогда становится еще хуже
Цитата
Возврат<<?>>;
{H:\загрузка свойств.ert(67)}: Оператор Return (Возврат) не может употребляться вне процедуры или функции
Эксель.Quit();<<?>>
{H:\загрузка свойств.ert(117)}: Обнаружено логическое завершение исходного текста модуля
<<?>>КонецПроцедуры
{H:\загрузка свойств.ert(118)}: Процедура или функция с указанным именем объявлена, но не определена в текущем модуле (ПоКнопкеЗагрузить)


1Cv77 @ Сегодня, 23:03 * ,

нашел , нужно было
Далее
убрать

1Cv77 Подменю пользователя
сообщение 13.07.17, 7:52
Сообщение #4

Завсегдатай
****
Группа: Пользователи
Сообщений: 195
Из: Украина, Мелитополь
Спасибо сказали: 61 раз
Рейтинг: 0

Korotkiy @ Вчера, 21:29 * ,
09000000.gif
Блин, я не внимателен(((((
не обратил внимание на "Далее"

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


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

 

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