Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/98: Рейтинг темы: голосов - 98, средняя оценка - 4.57
Symom-Phoymyx
1

внешняя обработка для изменения свойств номенклатуры

15.11.2007, 07:18. Просмотров 17936. Ответов 3
Метки нет (Все метки)

1С восьмерка
занимаюсь совсем недавно, так что может вопрос и простой, но для меня сложный )

ситуация: нужно изменить одно из свойств товара, в часности Основной производитель

есть форма, в которой указывается изменяемое свойство и какое значение ему присваивать, подгрузка списка номенклатуры, у которой нужно изменить указанное свойство, осуществляется из экселевского файла

модуль формы:


Код
Перем ВыборФайла, Exel;


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

Если ВыборФайла.Выбрать() Тогда

Файл = Exel.Workbooks.Open(ВыборФайла.ПолноеИмяФайла);
Табл = Файл.WorkSheets(1);

ЗначенияСвойствОбъектов = РегистрыСведений.ЗначенияСвойствОбъектов;
НаборСвойств = ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();


Для СчСтрок = 1 По КоличествоСтрок Цикл

КодТовара = Табл.Cells(СчСтрок, 1).Text;
Товар = Справочники.Номенклатура.НайтиПоНАИМЕНОВАНИЮ(КодТовара).Ссылка;

Если Товар.Пустая() Тогда
Сообщить("Не найден элемент справочника: Код - " + КодТовара + " Наименование - " + Табл.Cells(СчСтрок, 1).Text);

Продолжить;

КонецЕсли;

НовоеСвойство = НаборСвойств.Добавить();
НовоеСвойство.Объект = Товар;
НовоеСвойство.Свойство = Свойство;
НовоеСвойство.Значение = Значение;


КонецЦикла;
НаборСвойств.Записать();

КонецЕсли;


Файл.Close();
Exel.Quit();
КонецПроцедуры


Exel = Новый COMОбъект("Excel.Application",);
ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ВыборФайла.МножественныйВыбор = Ложь;
проблема в том, что фактически создается новый РегистрыСведений.ЗначенияСвойс твОбъектов, затирая уже имеющийся, а мне же надо, чтобы он добавлял запись, если таковой не присутствует, либо изменял уже существующую, меняя в ней свойство...третий день сижу, зарывшись в пособия разработчика 1С )...поможите плз )
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2007, 07:18
Ответы с готовыми решениями:

Внешняя обработка 1с для изменения реквизитов проведенных документов
Есть ли у кого-нибуть внешняя обработка 1с для изменения каких либо реквизитов в проведенный...

Внешняя обработка. УТ 11.3. Выбор доп.реквизитов номенклатуры и их заполнение
Всем привет! Есть срочный вопрос. Мне необходимо заполнить доп.реквизиты каждого товара в...

Внешняя обработка для УФ
делаю внешнюю обработку для бухгалтерии 3.0, подключил ее как внешнюю, указал ссылку на документ в...

Внешняя обработка для документа
Типовая конфигурация бухгалтерии. Есть документ "Комплектация номенклатуры" Нужно добавить...

3
0 / 0 / 0
Регистрация: 11.11.2005
Сообщений: 584
15.11.2007, 09:22 2
при записи набора восьмерка перезаписывает все старые записи с таким-же отбором. Чтобы добавить, надо прочитать в набор то, что есть в регистре, потом дописать в него новые записи, и только потом записывать. Чтобы изменить - соответственно: читаем, изменяем то, что есть, записываем. Удачи.
0
Symom-Phoymyx
15.11.2007, 09:32 3
а можно поподробнее?
попытался добавить в код
НаборСвойств.Отбор.Объект.Уста новить(Товар);
НаборСвойств.Отбор.Свойство.Ус тановить(Свойство);
НаборСвойств.Прочитать();
если ставлю перед
НовоеСвойство = НаборСвойств.Добавить();
НовоеСвойство.Объект = Товар;
НовоеСвойство.Свойство = Свойство;
НовоеСвойство.Значение = Значение;
то новые записи добавляет, но старые не редактирует, ругаясь, что запись уже существует в списке...т.е. ведет себя так, будто Запись=Ложь
если ставлю перед
НаборСвойств.Записать(Истина);
то вообще никакой реакции не получаю, будто обработка и не выполнялась )
Symom-Phoymyx
15.11.2007, 10:10 4
все, разобрался
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.11.2007, 10:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Программа для изменения свойств фотографии
Здравствуйте, озадачили меня просьбой создать софтину, которая способна изменять определенные...

Внешняя обработка для эквайрингового терминала
Собственно, нужно заставить работать терминал Ingenico ICT220 с популярными торговыми...

Внешняя обработка для копирования документов
Здраствуйте, создаю внешнюю обработку для копирования документов. Не могу понять как застить ее...

Внешняя обработка для создания документа
Нужно создать внешнюю обработку для созданию общего заказа поставщику из остальных заказов с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.