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

Загрузка данных из Excel ДалионТренд

Автор axstter, 23 авг 2017, 15:42

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

axstter

Здравствуйте.
Подскажите как изменить стандартную выгрузку электронной накладной из Excel так чтобы при не нахождении номенклатуры по штрих-коду, в "Приходную накладную" добавлялись поля которые он нашел.
А не как щас,если какую-то карточку не нашел,он её и не добавляет.

oleg-x

измените условие, если не найдено, то все равно добавлять строку в таблицу, а сейчас видимо, он пропускает данный кусок кода.
P.S. так мне подсказывает мой хрустальный шар :)
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

axstter

я в табличной части СоздаватьНенайденноеСсылочноеЗначение ставлю "+"
Но теперь он ругается "Поле объекта не обнаружено (Штрихкод)"

oleg-x

Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

axstter

я код не писал,я это изменил в макете.

oleg-x

Цитата: axstter от 23 авг 2017, 16:52
я код не писал,я это изменил в макете.
В макете можно менять все что угодно, а вот как написан код?
Код, где выдает ошибку выкладывайте.
Если не знаете язык 1С, обратитесь в раздел фриланс.
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

axstter

Процедура ЗагрузитьДанные(Команда)
   
   Перем НомераПравильныхСтрок, Ошибки;
   
   Отказ = Ложь;

   Если Объект.НомерПервойСтрокиДанных = 0 Тогда
      ТекстСообщения = НСтр("ru = 'Номер первой строки не должен быть равен нулю. Укажите номер первой строки в пользовательских настройках или в поле Считывать строки с'");
      ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, , "Объект.НомерПервойСтрокиДанных", , Отказ);   
      Возврат;
   КонецЕсли;
   
   ОчиститьОшибочныеЯчейки();
   
   Если Элементы.ЗагружаемыйОбъект.Видимость Тогда
      
      Если НЕ ЗначениеЗаполнено(Объект.ЗагружаемыйОбъект) Тогда
         ТекстСообщения = НСтр("ru = 'Загружаемый объект не заполнен'");
         ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения, , "Объект.ЗагружаемыйОбъект", , Отказ);
         Возврат;
      КонецЕсли;
      
      Если ОбщегоНазначенияДУМ.ЗначениеРеквизитаОбъекта(Объект.ЗагружаемыйОбъект, "Проведен") Тогда
         Предупреждение(НСтр("ru = 'Для загрузки документа отмените его проведение'"));
         Возврат;
      КонецЕсли;
      
   КонецЕсли;
   
   Если ДанныеЛиста.ВысотаТаблицы < Объект.НомерПервойСтрокиДанных
         ИЛИ ДанныеЛиста.ВысотаТаблицы < Объект.НомерПервойСтрокиДанных
            И Объект.НомерПервойСтрокиДанных = НомерСтрокиЗаголовкаТаблицы Тогда
      ТекстОшибки = НСтр("ru = 'Нет данных для загрузки'");
      ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстОшибки, , "ДанныеЛиста");
      Возврат;
   КонецЕсли;
   
   ПродолжатьЗагрузку = ПоискУспешен(НомераПравильныхСтрок, Ошибки);
   
   Если НЕ ПустаяСтрока(АдресХраненияРезультатаПоискаДанных)
         И Объект.ВидОбъекта <> "Документ_ПриходнаяНакладная" Тогда
      ПродолжатьЗагрузку = Истина;
   КонецЕсли;
   
   Если ПродолжатьЗагрузку Тогда
      
      ЗагрузитьДанныеСервер(ДанныеЛиста, НомераПравильныхСтрок, ОшибочныеЯчейки, Ошибки);
      
      ОтметитьОшибочныеЯчейки();
      
   КонецЕсли;
   
   ОбщегоНазначенияКлиентСервер.СообщитьОшибкиПользователю(Ошибки, Отказ);
   
   Если ЗначениеЗаполнено(Объект.ЗагружаемыйОбъект)
         И ВладелецФормы <> Неопределено Тогда
      ВладелецФормы.Прочитать();
   Иначе
      Если Объект.ВидОбъекта = "Справочник_Номенклатура" Тогда
         ОповеститьОбИзменении(Тип("СправочникСсылка.Номенклатура"));
      ИначеЕсли Объект.ВидОбъекта = "Справочник_Контрагенты" Тогда
         ОповеститьОбИзменении(Тип("СправочникСсылка.Контрагенты"));
      КонецЕсли;
   КонецЕсли;
   
   Если НЕ Отказ Тогда
      
      Предупреждение(НСтр("ru = 'Загрузка данных произведена успешно'"));
      
   ИначеЕсли ТипЗнч(Объект.ЗагружаемыйОбъект) <> Тип("ДокументСсылка.ПриходнаяНакладная") Тогда
      
      КоличествоЗагружаемыхСтрок = Объект.НомерПоследнейСтрокиДанных - Объект.НомерПервойСтрокиДанных;
      Если НомерСтрокиЗаголовкаТаблицы <> Объект.НомерПервойСтрокиДанных Тогда
         КоличествоЗагружаемыхСтрок = КоличествоЗагружаемыхСтрок + 1;
      КонецЕсли;
      
      КоличествоЗагруженныхСтрок = КоличествоЗагружаемыхСтрок - Объект.КоличествоПропущенныхСтрок;
      
      ПоследняяЦифраЗагруженных = КоличествоЗагруженныхСтрок % 10;
      Если ПоследняяЦифраЗагруженных = 1 Тогда
         НадписьЗагружено = "Загружена";
      Иначе
         НадписьЗагружено = "Загружено";
      КонецЕсли;
      
      ПоследняяЦифраЗагружаемых = КоличествоЗагружаемыхСтрок % 10;
      Если ПоследняяЦифраЗагружаемых = 1 Тогда
         ИзмерениеСтрок = "строки";
      Иначе
         ИзмерениеСтрок = "строк";
      КонецЕсли;
      
      ТекстСообщения = НСтр("ru = '%1 %2 из %3 %4'");
      ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстСообщения, НадписьЗагружено, КоличествоЗагруженныхСтрок, КоличествоЗагружаемыхСтрок, ИзмерениеСтрок);
      
      Предупреждение(ТекстСообщения);
      
   КонецЕсли;
   
КонецПроцедуры

oleg-x

Код заключайте в теги. выделяете код и нажимаете решетку(#) в редакторе.
А код где выдает ошибку, а это процедура загрузки самого файла.
Создайте ситуацию с ошибкой и через подробно, нажмите конфигуратор, курсор сразу будет на том месте где код остановился
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

axstter

Скрин

Теги:

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

Рейтинг@Mail.ru

Поиск