Бухгалтерский учет, налогообложение, отчетность, МСФО, анализ бухгалтерской информации, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Изменение подчиненности элемента в прайс листе

maxzpua
читатель
офлайн
Дата регистрации: 13.05.2009
Сообщений: 3
Пост №1
 
13.05.2009 17:29

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

Выдает сообщение об ошибке

{Справочник.Номенклатура.ФормаСписка.ФормаСписка.Модуль(205)}: Не выбран элемент!
спр.Родитель=Спр1.Родитель;

Где может быть ошибка? "

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №2
 
13.05.2009 19:06

"Интересно как это все понимать:
> спр=СоздатьОбъект("Справочник.ПрайсЛист");
Спр - это Прайс лист, ладно.

> спр1=СоздатьОбъект("Справочник.Номенклатура");
Спр1 - это номенклатуры

> текэл = Спр1.ТекущийЭлемент();
Извините, а что вы получите через ТекущийЭлемент(), если после создания объекта ничего не выбирали? Может сначала найдете интересующий вас объект.

> спр.НайтиПоНаименованию(текэл);
А это вообще бред - НайтиПоНаименованию подразумевает, что ищется наименование. А вы вместо наименования подсовываете Объект, да еще и Номенклатуры. Конечно преобразование в строку пройдет, но вы уверены, что результатом будет именно наименование? К тому же ищите Наименование Прайса = Наименованию Номенклатуры (может конечно они у вас и равны по каким-то причинам)

> спр.Родитель=Спр1.Родитель;
И это писк, который переводиться так: ПрайсЛист = Номенклатура. :)

Короче - ошибок пруд пруди :)
"

Денис (САМАРА)
активный пользователь
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №3
 
13.05.2009 21:12

"Процедура ПриПереносеЭлементаВДругуюГруппу(ТекЭл, НовГр)

спр=СоздатьОбъект("Справочник.ПрайсЛист");

Спр.НайтиПоНаименованию(НовГр.Наименование);
НовГрПрайсЛиста = Спр.ТекущийЭлемент();

спр.НайтиПоНаименованию(текэл.Наименование);
Спр.Родитель = НовГрПрайсЛиста;
Спр.Записать();

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


"

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3077
Пост №4
 
13.05.2009 21:41

"Что то я мучался, мучался... не могу вспомнить в какой конфигурации есть этот справочник. Точно помню, что видел, но где не помню. Вроде в каких то старых релизах "Торговля и склад". Там смысл был в том, что помимо справочника номенклатуры существовал отдельный справочник "ПрайсЛист", куда можно было добавлять ссылки на справочник номенклатуры и организовать в нем отражение лишь нужной части справочника номенклатуры и сгруппировать их каким то иным образом, не обязательно совпадающим с группировками справочника Номенклатуры. Поскольку вы такую задачу решаете, выходит, что у вас справочники Номенклатуры и Прайс лист по структуре синхронны. Исходя из этого соображения, вот вариант решения:

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

maxzpua
читатель
офлайн
Дата регистрации: 13.05.2009
Сообщений: 3
Пост №5
 
14.05.2009 09:13

Я не волшебник, я только учусь. Спасибо за критику. Учту.

maxzpua
читатель
офлайн
Дата регистрации: 13.05.2009
Сообщений: 3
Пост №6
 
14.05.2009 10:54

Большое спасибо! Просто огромное! Все работает!

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Учет, налогообложение, автоматизация
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • ЕГАИС
Предложения партнеров
Обучение пользователей продуктов 1С

1С бесплатно 1С-Отчетность 1С:ERP Управление предприятием 1С:Бесплатно 1С:Бухгалтерия 8 1С:Бухгалтерия 8 КОРП 1С:Бухгалтерия автономного учреждения 1С:Бухгалтерия государственного учреждения 1С:Бюджет муниципального образования 1С:Бюджет поселения 1С:Вещевое довольствие 1С:Деньги 1С:Документооборот 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и кадры государственного учреждения 1С:Зарплата и управление персоналом 1С:Зарплата и управление персоналом КОРП 1С:Комплексная автоматизация 8 1С:Лекторий 1С:Предприятие 1С:Предприятие 7.7 1С:Предприятие 8 1С:Розница 1С:Управление нашей фирмой 1С:Управление производственным предприятием 1С:Управление торговлей 1СПредприятие 8

Все теги