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

Автор Тема: справочники, проблема  (Прочитано 3903 раз)

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

Оффлайн djonbox

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-09-05
  • Сайт: 
  • Профессия: Бухгалтер
Здравствуйте, написал обработку, но никак не получается изменить значение элемента справочника. ТекЭл.ПодкатегорияТовара.Код=рез; спрН.Записать(); присвоил элемент и записал. Вроде правильно, но почему то не присваивается.
//*******************************************
Процедура Сформировать()
стр1=100;
Стр2=1000;
уд=2;
спрН=СоздатьОбъект("Справочник.Номенклатура");
СпрПодк=СоздатьОбъект("Справочник.ПодкатегорииТовара");
СпрПодк.ИспользоватьВладельца(спрН);
спрН.ВыбратьЭлементы();
Пока спрН.ПолучитьЭлемент() = 1 Цикл
ТекЭл=спрН.ТекущийЭлемент();
СтрКод=ТекЭл.ПодкатегорияТовара.Код;
СтрКод=Число(СтрКод);
Если (СтрКод >стр1) и (СтрКод <Стр2) Тогда

Сообщить(ТекЭл.Наименование+"///"+ ТекЭл.ПодкатегорияТовара.Код);
теккод=ТекЭл.ПодкатегорияТовара.Код;
/////////
теккоддл=СтрДлина(теккод);
Скудалить=теккоддл-уд;
Сообщить(Скудалить);
/////////////
рез=Сред(теккод,Скудалить,теккоддл-1);
ТекЭл.ПодкатегорияТовара.Код=рез;
спрН.Записать();
//Если СпрПодк.НайтиПоКоду(рез)=1 Тогда
// ТекЭл.ПодкатегорияТовара.Код=СпрПодк.
// Сообщить(рез);
// спрН.Записать();
//КонецЕсли;

КонецЕсли;
КонецЦикла;
КонецПроцедуры


Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
Попробуйте так:

спрН.ПодкатегорияТовара.Код=рез;
спрН.Записать();


Оффлайн djonbox

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-09-05
  • Сайт: 
  • Профессия: Бухгалтер
пробывал, всеравно, не меняется значение. У меня получается есть справочник номенклатуры, и есть подчиненый справочник ПодкатегорииТовара. Необходимо в справочнике номенклатура, в ПодкатегорииТовара поменять код элемента, при том что коды в ПодкатегорииТовара уже прописанны для. Обрабоку написал, но код почемуто в номенклатуре не присваивается.

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
понятно почему не получается...
нужно не справочник номенклатуры записывать, а справочник ПодкатегорииТовара.

примерно вот так:

рез=Сред(теккод,Скудалить,теккоддл-1);
СпрКатегорияТовара = СоздатьОбъект("Справочник.ПодкатегорииТовара");

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


Оффлайн djonbox

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-09-05
  • Сайт: 
  • Профессия: Бухгалтер
понятно почему не получается...
нужно не справочник номенклатуры записывать, а справочник ПодкатегорииТовара.

примерно вот так:

рез=Сред(теккод,Скудалить,теккоддл-1);
СпрКатегорияТовара = СоздатьОбъект("Справочник.ПодкатегорииТовара");

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


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

Оффлайн djonbox

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-09-05
  • Сайт: 
  • Профессия: Бухгалтер
Переделал, всеравно не присваивает другой код в номенклатуре. Элемент находит не получается просто перевыбрать элемент с другим кодом.
//*******************************************
Процедура Сформировать()
стр1=100;
Стр2=1000;
уд=2;
спрН=СоздатьОбъект("Справочник.Номенклатура");
СпрПодк=СоздатьОбъект("Справочник.ПодкатегорииТовара");
СпрПодк.ИспользоватьВладельца(спрН);
спрН.ВыбратьЭлементы();
Пока спрН.ПолучитьЭлемент() = 1 Цикл

СтрКод=спрН.ПодкатегорияТовара.код;
СтрКод=Число(СтрКод);
Если (СтрКод >стр1) и (СтрКод <Стр2) Тогда

Сообщить(спрН.Наименование+"///"+спрН.ПодкатегорияТовара.Код);

теккод=спрН.ПодкатегорияТовара.Код;
/////////
теккоддл=СтрДлина(теккод);
Скудалить=теккоддл-уд;
Сообщить(Скудалить);
/////////////
рез=Сред(теккод,Скудалить,теккоддл-1);
Если СпрПодк.НайтиПоКоду(рез)=1 Тогда
Сообщить("Код найден");
спрН.ПодкатегорияТовара.Код=рез;
спрН.Записать();
КонецЕсли;

КонецЕсли;
КонецЦикла;
КонецПроцедуры

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
п
Переделал, всеравно не присваивает другой код в номенклатуре. Элемент находит не получается просто перевыбрать элемент с другим кодом.
//*******************************************

рез=Сред(теккод,Скудалить,теккоддл-1);
Если СпрПодк.НайтиПоКоду(рез)=1 Тогда
  Сообщить("Код найден");
  спрН.ПодкатегорияТовара.Код=рез;
  спрН.Записать();
КонецЕсли;

в следующий раз попонятней разъясняйте, что вам нужно.
Вот каким образом это делается:

рез=Сред(теккод,Скудалить,теккоддл-1);
Если СпрПодк.НайтиПоКоду(рез)=1 Тогда
  Сообщить("Код найден");
  спрН.ПодкатегорияТовара=СпрПодк.ТекущийЭлемент();
  спрН.Записать();
КонецЕсли;

Оффлайн djonbox

  • *
  • Сообщений: 24
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-09-05
  • Сайт: 
  • Профессия: Бухгалтер
п
Переделал, всеравно не присваивает другой код в номенклатуре. Элемент находит не получается просто перевыбрать элемент с другим кодом.
//*******************************************

рез=Сред(теккод,Скудалить,теккоддл-1);
Если СпрПодк.НайтиПоКоду(рез)=1 Тогда
  Сообщить("Код найден");
  спрН.ПодкатегорияТовара.Код=рез;
  спрН.Записать();
КонецЕсли;

в следующий раз попонятней разъясняйте, что вам нужно.
Вот каким образом это делается:

рез=Сред(теккод,Скудалить,теккоддл-1);
Если СпрПодк.НайтиПоКоду(рез)=1 Тогда
  Сообщить("Код найден");
  спрН.ПодкатегорияТовара=СпрПодк.ТекущийЭлемент();
  спрН.Записать();
КонецЕсли;


Вроде нашел проблему, справочник ПодкатегорияТовара привязан к справочнику(является владельцем) ук_категории_товаровKIP, и как бы прописать для номенклатыры кто для кого является владельцем.
спрН=СоздатьОбъект("Справочник.Номенклатура");
спрУк=СоздатьОбъект("Справочник.ук_категории_товаровKIP");
СпрПодк=СоздатьОбъект("Справочник.ПодкатегорииТовара");
СпрПодк.ИспользоватьВладельца(спрУк);

И как в этом случае в номенклатуре переприсвоить другой код

Оффлайн Herby

  • *****
  • Сообщений: 936
  • РЕПУТАЦИЯ: 164
  • КПД: 18%
  • Регистрация: 2010-08-31
  • Сайт: 
  • Профессия: Программист 7.7
как я вам написал в предпоследнем сообщении, так и делайте.

и "переприсвоить другой код" - не совсем корректно говорить.

вам нужно для реквизита "ПодкатегорияТовара" присвоить другое значение элемента
справочника "Подкатегории товаров", но ни как не код.


Теги:
 


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

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

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


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

* Реклама

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

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
166 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
46 Сообщений
andron81_81
42 Сообщений
AIFrame
36 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
BuhRust
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 171
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal