Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
16 Дек 2017, 14:21
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Универсальный загрузчик табличного документа для 1С:Розница 8  (Прочитано 10310 раз)

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

Оффлайн Divad

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-10-19
  • Сайт: 
Нужна помощь специалистов, т.к. сам в программировании 1С не шарю ни фига.
Необходимо загрузить в справочник Номенклатура данные из файла Excel с помощью обработки "Универсальный загрузчик табличного документа" , что с диска ИТС (конфигурация 1С:Розница 8). Нашел инструкцию как это делается для УТ 10.3, но с теми же настройками обработки не получается загрузить. Ошибки возникают на пунктах: Единица хранения остатков и Единица для отчетов. Вот код для УТ:
 СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоНаименованию(ТекущиеДанные["Наименование"]); 
БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(796);
ТекСпр=Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("
ЕдиницаПоКлассификатору",БазоваяЕдиницаИзмерения,,СсылкаНоменклатуры);
Если ТекСпр.Пустая() Тогда НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
НайденнаяЕдиницаОбъект.Наименование = СокрЛП(БазоваяЕдиницаИзмерения);
НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения;
НайденнаяЕдиницаОбъект.Коэффициент = 1;
НайденнаяЕдиницаОбъект.Владелец = СсылкаНоменклатуры;
Попытка НайденнаяЕдиницаОбъект.Записать();
Результат = НайденнаяЕдиницаОбъект.Ссылка;
Исключение Сообщить("Не удалось записать");
КонецПопытки;
Иначе Результат =ТекСпр.Ссылка;
КонецЕсли;
Как переделать этот код, что бы использовать для Розницы?


Оффлайн mohock

  • ***
  • Сообщений: 170
  • РЕПУТАЦИЯ: 50
  • КПД: 29%
  • Регистрация: 2010-08-12
  • Сайт: 
  • Профессия: Программист 8.1
Дело в том что то, что ты пытаешься загрузить является ссылкой на справочник, владельцем которого является номенклатура, которую ты создаешь во время загрузки. Ошибка из-за того, что нет у тебя владельца пока не создана номенклатура. Т.е. вначале надо записать элемент - номенклатура, а затем из базовой единицы измерения (классификатора) выбрать для номенклатуры эти две ед.изм. и записать номенклатуру второй раз. Во время второй записи и создаютя эти две ед.изм. в справочнике ЕдиницыИзмерения.
Поэтому используя эту стандартную обработку по загрузке ТЧ из таблиц, следует сначала создать номенклатуру без этих двух ед.изм. А затем либо руками или вашей личной обработкой сделать, то что не смогла обработка с ИТС.
( :D хотя может она все-же это может, но я не знаю как.... может кто знает?...  :D :D :D :D :D)


Оффлайн Divad

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-10-19
  • Сайт: 
mohock
Вот посмотри статью про эту обработку касаемо загрузки в УТ 10.3 : http://www.online-ufa.ru/content/articles/#view/content/articles/1057/
Вот меня и интересует, как это использовать для Розницы 8. По идее это должно быть не очень сложно, т.к. у УТ 10.3 и Розницы много общего...

Оффлайн xDD

  • **
  • Сообщений: 69
  • РЕПУТАЦИЯ: 1
  • КПД: 1%
  • Регистрация: 2011-11-18
  • Сайт: 
  • Профессия: Программист 8.1
Дабы не плодить сущности напишу сюда же. Проблема в УТ не получается номально присвоить  единицу хранения остатков товару все вроде делаю как в инструкции в обработке  "Загрузка данных из табличного документа "   в поле единца хранения остатков пишу "вычислять" и ставлю код
СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоНаименованию(ТекущиеДанные["Наименование"]); 
БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду("778");
ТекСпр=Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("ЕдиницаПоКлассификатору",БазоваяЕдиницаИзмерения,,СсылкаНоменклатуры);
Если ТекСпр.Пустая() Тогда НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
НайденнаяЕдиницаОбъект.Наименование =  БазоваяЕдиницаИзмерения;
НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору =  БазоваяЕдиницаИзмерения;
НайденнаяЕдиницаОбъект.Коэффициент = 1;
НайденнаяЕдиницаОбъект.Владелец = СсылкаНоменклатуры;
Попытка НайденнаяЕдиницаОбъект.Записать();
Результат = НайденнаяЕдиницаОбъект.Ссылка;
Исключение Сообщить("Не удалось записать");
КонецПопытки;
Иначе Результат =ТекСпр.Ссылка;
КонецЕсли;
В справочник Единица Измерения при выполнении строка записывается, но в номенклатуре в поле единица хранения остатокв почему то не записывается подскажите плз в чем може быть дело?

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Судя по коду, единица измерения действительно создается. Но не видно, где она присваивается номенклатуре в качестве Основной единицы хранения. Оно есть?
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн pawonex

  • *
  • Сообщений: 1
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-05-24
  • Сайт: 
  • Профессия: Программист 1С
Столкнулся с такой же проблемой.

Вот какой у меня код для вычисления:
Единицы для отчетов:
СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", ТекущиеДанные["Артикул"]);
БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(796);
ТекСпр=Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("ЕдиницаПоКлассификатору",БазоваяЕдиницаИзмерения,,СсылкаНоменклатуры);
Если ТекСпр.Пустая() Тогда
   НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
   НайденнаяЕдиницаОбъект.Наименование = СокрЛП(БазоваяЕдиницаИзмерения);
   НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения;
   НайденнаяЕдиницаОбъект.Коэффициент = 1;
   НайденнаяЕдиницаОбъект.Владелец = СсылкаНоменклатуры;
   Попытка НайденнаяЕдиницаОбъект.Записать();
   Результат = НайденнаяЕдиницаОбъект.Ссылка;
   Исключение
   Сообщить("Не удалось записать");
   КонецПопытки;
   Иначе Результат =ТекСпр.Ссылка;
КонецЕсли;

Единицы хранения:
СсылкаНоменклатуры = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", ТекущиеДанные["Артикул"]);
БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(796);
ТекСпр=Справочники.ЕдиницыИзмерения.НайтиПоРеквизиту("ЕдиницаПоКлассификатору",БазоваяЕдиницаИзмерения,,СсылкаНоменклатуры);
Если ТекСпр.Пустая() Тогда
   НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
   НайденнаяЕдиницаОбъект.Наименование = СокрЛП(БазоваяЕдиницаИзмерения);
   НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения;
   НайденнаяЕдиницаОбъект.Коэффициент = 1;
   НайденнаяЕдиницаОбъект.Владелец = СсылкаНоменклатуры;
   Попытка НайденнаяЕдиницаОбъект.Записать();
   Результат = НайденнаяЕдиницаОбъект.Ссылка;
   Исключение
   Сообщить("Не удалось записать");
   КонецПопытки;
   Иначе Результат =ТекСпр.Ссылка;
КонецЕсли;


Одна маленькая, но не приятная особенность, у меня (проверенно) этот код срабатывает если при загрузке номенклатуры базовые единицы загружаются в режиме Устанавливать, т.е. для всех к примеру с ставил шт.. Но если вам нужно считать единицы из таблицы, вряд ли мой код поможет. Если найдете решение буду благодарен=)

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(796);
Попробуйте искать не по коду! По наименованию или полному наименованию.
Помогли, отблагодари!


Теги:
 

Не открывает форму сохраненного документа, открывает форму нового.

Автор EHOTРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 4480
Последний ответ 13 Апр 2012, 23:26
от Vit1501
Автоматическое заполнение табличной части документа из табличной части другого

Автор WillРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 15944
Последний ответ 16 Авг 2012, 12:07
от Will
Заполнение поля табличной части документа из табличной части справочника.

Автор Kurt_WagnerРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 4201
Последний ответ 06 Апр 2015, 20:08
от Kurt_Wagner
Заполнение табличной части документа реквизитами табличной части справочника

Автор kaf_infoРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 638
Последний ответ 10 Май 2017, 20:44
от ilnur75
Добавление сведений в графу "основание" документа "ТОРГ-12"

Автор Ярослав1984Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7750
Последний ответ 20 Авг 2013, 18:45
от Ярослав1984

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
157 Сообщений
ilyay ilyay
66 Сообщений
alex0402
53 Сообщений
AIFrame
47 Сообщений
oleg-x
44 Сообщений
andron81_81
44 Сообщений
BuhRust
33 Сообщений
MuI_I_Ika MuI_I_Ika
32 Сообщений
Golickoff Golickoff
31 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 253
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal