Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как загрузить из EXEL единицы измерения
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
bereznoy
Начну с благодарностей сначала. Спасибо всем кто отвечал на мои глупые вопросы, в особенности MATVEI спасибо. С помощью ваших советов и подсказок выгрузил из экселя с иерархией всю номенклатуру и к ней подгурзил номенклатуру, теперь стоит проблема с единицами измерения, т.е. есть товар в котором важно вести единицы изм. в пог.метрах, штуках, упаковках и т.д., эта инфа есть в экселе и привязана по коду к моей номенклатуре, как загнать эту инфу в номенклатуру к конкретным позициям я хз, мож кто знает де взять обработку.

П.с. еще вопрос, при загрузке позиции номенклатуры находящейся в папке 1 а там в дочерней папке 2 надо что б в полное наименование было 1 2 имя номенклатуры,а у меня получается только имя и все
bereznoy
Аууууу.....проблема при загрузке из экселя заполнения полей "Единица для отчетов" и "Единица хранения остатков", там надо прописать код, мне надо что бы в обеих случаях было тоже самое что и в базовой единице, как....?? плиз помогите
Batchir
А вы посмотрите что происходит с номенклатурой при ручной записи, ведь там как-то создаются и заполняются эти реквизиты автоматически.
bereznoy
Цитата(Batchir @ 02.10.11, 21:56) необходимо зарегистрироваться для просмотра ссылки
А вы посмотрите что происходит с номенклатурой при ручной записи, ведь там как-то создаются и заполняются эти реквизиты автоматически.

Правильно, но при импорте из экселя он их не подхватывает, там надо код что прописалось тоже самое что в базовой единице, и вообще в базовой там к классификатору привязка,А в ед остатков и отчетов там справочник ед.измерения, вообщем нужОн кодеГ
Batchir
Не, просто так кодеГ не скажу, а намек дам.
Самое быстрое ИМХО решение -
Напишите обработку, которая пройдется и перезапишет всю номенклатуру.
При этом посмотрите что делается при ручной записи и выполните тот же код.
bereznoy
Цитата(Batchir @ 02.10.11, 22:19) необходимо зарегистрироваться для просмотра ссылки
Не, просто так кодеГ не скажу, а намек дам.
Самое быстрое ИМХО решение -
Напишите обработку, которая пройдется и перезапишет всю номенклатуру.
При этом посмотрите что делается при ручной записи и выполните тот же код.


Ок, таки попытаюсь добить ИТС-овскую обработку, значит код такой вроде как родился

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


Но, во второй строчке надо четко указать из классификатора код, а мне надо что бы ед.изм была такая же как базовая и все, а не принудительно всем, т.к. ед. измерения 10 штук
Batchir
Ну так указывайте тот код который Вам надо
Если Код = "Штука" ТОгда
КодКлассификатора = "шт";
ИначеЕсли Код = "КилоАМ" ТОгда
КодКлассификатора = "кг";
КонецЕсли;
БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(КодКлассификатора);
bereznoy
Блин, спешу и завтра уже надо с этими ед.изм. базу крутить с бухгалтерами, послушал Вашего совета и создал обработку и кодом на кнопку
Код следующий:

Процедура КнопкаВыполнитьНажатие(Кнопка)

        Запрос = Новый Запрос("ВЫБРАТЬ
|    Номенклатура.Ссылка
|ИЗ
|    Справочник.Номенклатура КАК Номенклатура
|ГДЕ
|    Номенклатура.ЭтоГруппа = ЛОЖЬ");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
объект = Выборка.Ссылка.ПолучитьОбъект();
// Присвоение значения БазоваяЕдиницаИзмерения
// для ЕдиницаХраненияОстатков и ЕдиницаДляОтчетов
// и дальнейшая запись в карточку Номенклатуры

Объект.ОбменДанными.Загрузка = Истина;

НовыйОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();


НовыйОбъект.Наименование = Объект.БазоваяЕдиницаИзмерения;
НовыйОбъект.Коэффициент = 1;
НовыйОбъект.Владелец = Объект.Ссылка;
НовыйОбъект.Записать();

Объект.ЕдиницаХраненияОстатков = НовыйОбъект.Ссылка;
Объект.ОбменДанными.Загрузка = Истина;
НовыйОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();

НовыйОбъект.Наименование = Объект.БазоваяЕдиницаИзмерения;
НовыйОбъект.Коэффициент = 1;
НовыйОбъект.Владелец = Объект.Ссылка;
НовыйОбъект.Записать();

Объект.ЕдиницаДляОтчетов = НовыйОбъект.Ссылка;
КонецЦикла;

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


Во-первых он создает в ед.изм. два дубля + не подвязывает к ед. хран остатков и отчетов, что подправить?


Всем спасибо, сделал обработку, которая делает ед измерения и нажимает кнопку записать в объекте номенклатуры и все проставляется.
Ardi
Цитата(bereznoy @ 03.10.11, 0:11) необходимо зарегистрироваться для просмотра ссылки
Всем спасибо, сделал обработку, которая делает ед измерения и нажимает кнопку записать в объекте номенклатуры и все проставляется.

ЧЕГО????
Если открыть руками Объект "Номенклатура" и нажать ОК - то ЕДИНИЦЫ и так создаются и заполняются.
БУ га га.
bereznoy
х
Ardi
Цитата(bereznoy @ 03.10.11, 0:11) необходимо зарегистрироваться для просмотра ссылки
и нажимает кнопку записать в объекте номенклатуры

??????????
Batchir
Цитата(Ardi @ 03.10.11, 3:03) необходимо зарегистрироваться для просмотра ссылки
и нажимает кнопку записать в объекте номенклатуры
??????????

Имелось ввиду что в цикле получаются объекты номенклатуры и вызывается команда записи в форме для каждого объекта.
При этом выполняется то что нужно (заполняются единицы измерения).
В общем, если топикстартер внимательно прочитал бы сначала 3 сообщение, потом 5, то пришел бы к этому решению раньше.
bereznoy
Цитата(Batchir @ 03.10.11, 8:31) необходимо зарегистрироваться для просмотра ссылки
Имелось ввиду что в цикле получаются объекты номенклатуры и вызывается команда записи в форме для каждого объекта.
При этом выполняется то что нужно (заполняются единицы измерения).
В общем, если топикстартер внимательно прочитал бы сначала 3 сообщение, потом 5, то пришел бы к этому решению раньше.

Извиняюсь за невнимательность,
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.