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

Автор Тема: В подборе выбрана единица другого элемента справочника  (Прочитано 8447 раз)

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

Оффлайн xDee

  • *
  • Сообщений: 35
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-09
  • Сайт: 
  • Профессия: Программист 7.7
Доброго времени суток всем! Непонятная ситуация у меня получилась, сформировал в старой базе ТиС 9.2 остатки номенклатуры и выгрузил их в excel, после чего загрузил в чистую ТиС остатки, присвоил штрих коды, проверил все нормально. Начали работать и теперь при создании документа реализации по кнопке "подбор" выдает следующее :
"В подборе выбрана единица другого элемента справочника Номенклатура.
Проверьте правильность указания базовой и основной единицы для элемента
"Silicon Power Ultima 150 <SP016GBUF2150V1U> USB2.0", а также правильность указания единиц измерения
в справочниках единиц и цен для данной позиции номенклатуры.""
Причем ,если добавить номенклатуру без кнопки подбор то не ругается и это только по позициям которые были добавлены обработкой и не по всем позициям вываливается такое сообщение. Подскажите пожалуйста как вычислить те позиции номенклатуры у которой не правильно записалась единица. Я могу конечно переназначить всей номенклатуре единицы, но тогда у меня слетят все штрихкоды, а это совсем не айс, т.к. в прайсе порядка 20 000 позиций, а остатки были загружены по 1380 позициям.


Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Как вариант попробуй в цикле по номенклатуре проверить на равенство саму номенклатуру, владельца базовой единицы, владельца основной единицы.
Кнопочка Спасибо - слева!

Оффлайн xDee

  • *
  • Сообщений: 35
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-09
  • Сайт: 
  • Профессия: Программист 7.7
Прогнал отладчиком это сообщение и вот что получил :
Номенклатура.Наименование = "18.5" MONITOR Acer eMachines <ET.XE0HE.001> E190HQ"
Номенклатура.Артикул = "111116                   "
Единица.Владелец.Наименование = "19"    MONITOR Acer <ET.CV3RE.D30> V193 DObmd  <Bl"
Единица.Владелец.Артикул = "105878   
Почему так могло произойти ? ведь не у каждой номенклатуры из загрузки остатков такое, я бы на код обработки тогда бы грешил, а тут выборочно как то, причем никаких совпадений по коду и артикулу нет.

Оффлайн xDee

  • *
  • Сообщений: 35
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-09
  • Сайт: 
  • Профессия: Программист 7.7
И самое главное как теперь это поправить?

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Создаем объект Справочник.Единицы (как то так). В нем находим нужный элемент (единица с неправильным владельцем), присваиваем ей правильного владельца. Записываем. Проверяем.
Все, как обычно, делаем на копии базы.
Кнопочка Спасибо - слева!

Оффлайн xDee

  • *
  • Сообщений: 35
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-09
  • Сайт: 
  • Профессия: Программист 7.7
Присваиваем ей правильного владельца, вот тут у меня и засада никак не могу понять как его найти ? Создать новый?

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Правильный владелец - элемент справочника Номенклатура, реквизит Единица которого мы искали в справочники Единицы.
Т.е. Запускаем цикл по справочнику Номенклатура. Группы пропускаем. Для тех элементов у которых владелец реквизита БазоваяЕдиница не равен Текущему элементу справочника Номенклатура, мы присваиваем Владельцу значение текущего элемента номенклатуры.
Кнопочка Спасибо - слева!

Оффлайн xDee

  • *
  • Сообщений: 35
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-09
  • Сайт: 
  • Профессия: Программист 7.7
СпрНоменклатура=СоздатьОбъект("Справочник.Номенклатура");
ТекЕдиница=СоздатьОбъект("Справочник.Единицы");
СпрЕдиница=СоздатьОбъект("Справочник.Единицы");
СпрНоменклатура.ВыбратьЭлементы();
Пока СпрНоменклатура.ПолучитьЭлемент()=1 Цикл
  Если СпрНоменклатура.ЭтоГруппа()=1 Тогда
    Продолжить;
  КонецЕсли;
  Если (СпрНоменклатура.ТекущийЭлемент()<>СпрНоменклатура.основнаяЕдиница.Владелец) Тогда
    ТекЕдиница=СпрНоменклатура.ОсновнаяЕдиница;
    СпрЕдиница.ИспользоватьВладельца(СпрНоменклатура.ТекущийЭлемент());
    КонецЕсли;
КонецЦикла;
Где я делаю неправильно ? подскажите пожалуйста.   

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
В СпрЕдиница нужно найти СпрНоменклатура.ОсновнаяЕдиница, сделать ее владельцем СпрНоменклатура.ТекущийЭлемент() и записать.
Т.е. не хватает СпрЕдиница.НайтиЭлемент(ТекЕдиница)
Кнопочка Спасибо - слева!

Оффлайн sergejK74

  • *****
  • Сообщений: 1093
  • РЕПУТАЦИЯ: 458
  • КПД: 42%
  • Всегда готов помочь!
  • Регистрация: 2011-07-08
  • Сайт: 
  • Профессия: Ученик 1С
Так наверное проще
СпрНоменклатура=СоздатьОбъект("Справочник.Номенклатура");
//ТекЕдиница=СоздатьОбъект("Справочник.Единицы");
СпрЕдиница=СоздатьОбъект("Справочник.Единицы");
СпрНоменклатура.ВыбратьЭлементы();
Пока СпрНоменклатура.ПолучитьЭлемент()=1 Цикл
  Если СпрНоменклатура.ЭтоГруппа()=1 Тогда
    Продолжить;
КонецЕсли;

основнаяЕдиница = СпрНоменклатура.основнаяЕдиница;

если ПустоеЗначение(основнаяЕдиница) = 1 Тогда
продолжить;
КонецЕсли;

    ТекущийЭлемент = СпрНоменклатура.ТекущийЭлемент();

  Если (ТекущийЭлемент<>основнаяЕдиница.Владелец) Тогда 
 
  Если СпрЕдиница.НайтиЭлемент(основнаяЕдиница) = 1 Тогда
  СпрЕдиница.Владелец = ТекущийЭлемент;
  СпрЕдиница.Записать();
  КонецЕсли;
    КонецЕсли;

Тоже и для базовой Единицы наверное надо сделать
Кнопочка Спасибо - слева!


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

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

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal