Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 19:13

Не могу понять в чем ошибка

Автор maxxi, 12 сен 2023, 10:52

0 Пользователей и 4 гостей просматривают эту тему.

LexaK

Цитата: maxxi от 12 сен 2023, 13:31Подскажите пожалуйста, где что поправить.

сначала задачу опишите!
если помогло нажмите: Спасибо!

maxxi

LexaK,

Вот весь код, надо заполнить из файла эту таблицу(Фото).



&НаКлиенте
Процедура ФайлНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
   
    Проводник = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   
    Проводник.Заголовок="Выбрать файл:";
   
    Если ФайлФормати="XLSX" Тогда
       
        Фильтр="Файл Excel (*.xlsx)| *.xlsx";
       
    Иначе
       
        Возврат;
       
    КонецЕсли;
   
    Проводник.Фильтр=Фильтр;
   
    Оповещение = Новый ОписаниеОповещения ("ПослеВыбораФайла", ЭтотОбъект);
   
    Проводник.Показать(Оповещение);
   
КонецПроцедуры

&НаКлиенте
Процедура ПослеВыбораФайла(ВыбранныеФайлы, ДополнительныеПараметры) Экспорт
   
    Если ВыбранныеФайлы = Неопределено  Тогда
       
        Возврат;
       
    КонецЕсли;
   
    Файл=ВыбранныеФайлы[0];

КонецПроцедуры

&НаКлиенте
Процедура Сформировать(Команда)
   
    СформироватьНаСервере();
   
КонецПроцедуры

&НаСервере
Процедура СформироватьНаСервере()
       
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ТЧ_Норматив.Товары КАК Товары,
        |    ТЧ_Норматив.НормативДень КАК НормативДень
        |ПОМЕСТИТЬ ВТ_ТЧ_НормативДень
        |ИЗ
        |    &ТЧ КАК ТЧ_Норматив
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТ_ТЧ_НормативДень.Товары КАК Товары,
        |    ВТ_ТЧ_НормативДень.НормативДень КАК НормативДень
        |ИЗ
        |    ВТ_ТЧ_НормативДень КАК ВТ_ТЧ_НормативДень";
   
    //ТЗ  = ТаблицаЗначений.Выгрузить();
    //Запрос.УстановитьПараметр("ТЧ",ТЗ);
   
    ТаблицаЗначений.Загрузить(Запрос.Выполнить().Выгрузить());
   
    РезультатЗапроса = Запрос.Выполнить();
   
    Выборка = РезультатЗапроса.Выбрать();
       
    Пока Выборка.Следующий() Цикл
       
        ТЗ=ТаблицаЗначений.Добавить();
       
        ТЗ.Товары=Выборка.Товары;
       
        ТЗ.НормативДень=Выборка.НормативДень;

    КонецЦикла;

   
КонецПроцедуры





LexaK

Цитата: maxxi от 12 сен 2023, 13:43надо заполнить из файла эту таблицу(Фото).
уже хоть что-то,
как прочитать данные из ексель, вам уже выслали пример обработки! (см.выше)
если помогло нажмите: Спасибо!

maxxi

LexaK, Спасибо, но у меня задание от учителя по этому обработчику.

Подскажите пожалуйста, где в моем коде что исправить.

Спасибо.

LexaK

maxxi, тааак, похоже, копировать рабочий код из одной обработки в другу, вы тоже не умеете
(чему только учат?)

но есть еще выход!
здесь же на сайте есть фрилансеры, смело обращайтесь к ним и они все сделают за вас.

(все, больше идей нет! кроме того что книжки читать и учить то что преподавали )   
если помогло нажмите: Спасибо!

fruitella

maxxi, Вот просто подумай логически, что у тебя тут происходит.
- У тебя идет открытие диалогового окна для выбора файла. Хорошо
- Файл выбираем. Хорошо
- А потом мы с ним ничего не делаем.
- Ты делаешь запрос в ТЧ, правда запрос станноват. Запрос к ТЧ, поместил в ВТ и потом к ней же еще раз обращаешься, причем вытягиваются те же поля. Сложно уловить смысл...

После того как ты прочитал данные тебе же надо как-то их обработать? Ну в чем смысл же открывать просто так файл. Вот Алексей как раз тебе и предлагает взглянуть на один из рабочих вариантов, где данные берутся из файла и как-то обрабатываются. По этому примеру ты можешь сделать свой вариант решения для данной задачи.


maxxi

fruitella, хотя бы укажите что удалить/добавить.
Спасибо.


&НаСервере
Процедура СформироватьНаСервере()
   
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        | ТЧ_Норматив.Товары КАК Товары,
        | ТЧ_Норматив.НормативДень КАК НормативДень
        |ПОМЕСТИТЬ ВТ_ТЧ_Норматив
        |ИЗ
        | &ТЧ КАК ТЧ_Норматив
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        | ВТ_ТЧ_Норматив.Товары КАК Товары,
        | ВТ_ТЧ_Норматив.НормативДень КАК НормативДень
        |ИЗ
        | ВТ_ТЧ_Норматив КАК ВТ_ТЧ_Норматив";
   
    Запрос.УстановитьПараметр("ТЧ", Объект.ДанныеФайла.Выгрузить());
   
    Объект.ДанныеФайла.Загрузить(Запрос.Выполнить().Выгрузить());
   
    РезультатЗапроса = Запрос.Выполнить();
   
    Выборка = РезультатЗапроса.Выбрать();
   
    Пока Выборка.Следующий() Цикл
       
        ТабЗнач=ТаблицаЗначений.Добавить();
       
        ТабЗнач.Товары=Выборка.Товары;
       
        ТабЗнач.НормативДень=Выборка.НормативДень;

    КонецЦикла;
   
КонецПроцедуры


maxxi

fruitella, Просто я сам хочу все написать в целях обучения, через запрос, а в обработке который мне дали не через обработку.

Максим75

maxxi, смотрите, вот здесь
Запрос.УстановитьПараметр("ТЧ", Объект.ДанныеФайла.Выгрузить());

что находится в Объект.ДанныеФайла ?
вангую что пусто, Вам на это и указали, что Вы файл Экселя открываете, и дальше с ним ничего не делаете.
соответственно, что когда в запрос передаете НИЧЕГО, то на выходе НИЧЕГО и получаете.

maxxi

Максим75,

"что находится в Объект.ДанныеФайла ?"


Объект.ДанныеФайла это, ТаблицаЗначении с полями "Товары" и "НормативДень".

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск