Имя: Пароль:
1C
1С v8
внешняя обработка
0 Orthodoxxx_
Reprobate
 
21.02.12
11:45
необходимо создать внешнюю обработку по созданию справочника номенклатуры. в этом справочнике должен быть 1 элемент, чтобы он проводился в любом документе. все реквизиты должны быть указаны правильно.
что то я вкурить не могу в задание, подскажите если есть соображения
1 rbcvg
 
21.02.12
11:46
"что то я вкурить не могу в задание" - ты не одинок
2 Kassius
 
21.02.12
11:47
А в чем проблема?
3 Orthodoxxx_
Reprobate
 
21.02.12
11:50
для меня тут проблема во всем
для начала я указал реквизиты: дата установки цен, валюта ссылка, родитель ссылка. правильно?
добавил основную форму.
что еще нужно добавить из данных?
4 pumbaEO
 
21.02.12
11:52
(3) то что в задаче написано это:
НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
НовыйЭлемент.Наименование = "Должен быть 1 элемент";
НовыйЭлемент.Записать();

Внешняя обработка с основной формой и с одной кнопкой "Создать"
5 D_Pavel
 
21.02.12
11:55
(4) Реквизиты не все заполнил, не будет проводиться такой элемент в любом документе, ошибку выдаст что не заполнен основной договор или склад.
6 pumbaEO
 
21.02.12
12:00
(5) Ты прав, в какой нибудь нетленке v8: Смена единицы измерения. У кого есть опыт борьбы? придется еще заполнить какой нибудь реквизит.
7 Orthodoxxx_
Reprobate
 
21.02.12
14:51
разобрался

Процедура КнопкаВыполнитьНажатие(Кнопка)
   // Вставить содержимое обработчика.
НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
НовыйЭлемент.Наименование = НаименованиеПолное;
НовыйЭлемент.СтранаПроисхождения = СтранаПроисхождения;
НовыйЭлемент.БазоваяЕдиницаИзмерения = ЕдиницаИзмерения;
НовыйЭлемент.СтавкаНДС = СтавкаНДС;
НовыйЭлемент.Записать();
КонецПроцедуры
8 DexterMorgan
 
21.02.12
14:54
(7) Всего то три часа задачку решал xDD
9 Orthodoxxx_
Reprobate
 
21.02.12
14:56
я на перекуры ходил еще(%
10 DexterMorgan
 
21.02.12
14:59
(9) Скока стоит обработка?
11 Orthodoxxx_
Reprobate
 
21.02.12
15:03
шутник великий, может для тебя это пустяк написать, а для меня с моим опытом тут в книжки надо лезть.
и каждый раз когда надо что то спросить, большинство, сидят и пруцца со сваей *ености
12 palpetrovich
 
21.02.12
15:03
если в (0) задание описано слово в слово, то я тоже не вкуриваю что надо-то :(
13 palpetrovich
 
21.02.12
15:04
(11) в верно заданном вопросе - больше половины ответа
14 DexterMorgan
 
21.02.12
15:05
(11) Так ты задавай вопросы нормально тебе и ответят: вон например мы пару часов рядом разбивали строку на слова и ниче никто не прецца =))
15 D_Pavel
 
22.02.12
06:44
А я сразу понял что нужно было. Еще на (5) посте.
И чувак из (4) тоже вроде понял, но не до конца написал ответ.
16 Wobland
 
22.02.12
06:46
>должен быть 1 элемент, чтобы он проводился в любом документе
расскажите мне как? как провести элемент справочника?
17 Rovan
 
гуру
22.02.12
07:35
(+16) а меня не проведешь ! -
элемент справочника на ландыш не похож !!
18 ЧеловекДуши
 
22.02.12
08:04
Если текст задачи такой как есть, "внешнюю обработку по созданию справочника номенклатуры"

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

...ПятничнО...
19 Рэйв
 
22.02.12
08:34
(0)Как то так:


Процедура ПолеВыбораНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
   СтандартнаяОбработка=Ложь;
        //-------------выбор чегото из ТЗ
       Элемент.Значение=ЧтоТо;
КонецПроцедуры
20 Рэйв
 
22.02.12
08:37
+(19) Эмм..Не туда:-)...Сторно
21 Orthodoxxx_
Reprobate
 
22.02.12
14:49
далее по теме. есть обработка, в которой указываем базовую ед измерения, наименование, поставщика и ндс. все по ссылочкам тут, все работает. задача в след. по нажатии выполнить обработка должна выводится в номенклатуру с автоматически указанными данными по кол-ву. т.е. автоматом должны поставиться ед. хранения остатков, ед. хранения отчетов, мест
как это можно реализовать? по коду что самое интересное у меня проставляются автоматом только НДС



Процедура КнопкаВыполнитьНажатие(Кнопка)
   // Вставить содержимое обработчика.
   
НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
НовыйЭлемент.ЕдиницаИзмеренияМест = БазоваяЕдиницаИзмерения;
НовыйЭлемент.ЕдиницаИзмеренияМест = ЕдиницаХраненияОстатков;
НовыйЭлемент.ЕдиницаИзмеренияМест = ЕдиницыДляОтчетов;
НовыйЭлемент.ЕдиницаИзмеренияМест = ЕдиницыМест;
НовыйЭлемент.Наименование = НаименованиеПолное;
НовыйЭлемент.НаименованиеПолное = НаименованиеПолное;
НовыйЭлемент.ОсновнойПоставщик = ОсновнойПоставщик;
НовыйЭлемент.СтавкаНДС = СтавкаНДС;
НовыйЭлемент.Записать();
Форма = Справочники.Номенклатура.ПолучитьФормуСписка();
Форма.Открыть();

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

Процедура ПроверитьЕдиницуХраненияОстатков(Отказ)

Если ЗначениеЗаполнено(ЕдиницаХраненияОстатков) Тогда
       Возврат;
   КонецЕсли;

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

       Попытка
           НайденнаяЕдиницаОбъект.Записать();
       Исключение
           Сообщить("Не удалось записать единицу хранения остатков: " + ОписаниеОшибки(), СтатусСообщения.Важное);
           Отказ = Истина;
           Возврат;
       КонецПопытки;

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


КонецПроцедуры
22 Orthodoxxx_
Reprobate
 
22.02.12
15:35
ап!
23 Шапокляк
 
22.02.12
15:40
(21)"задача в след. по нажатии выполнить обработка должна выводится в номенклатуру с автоматически указанными данными по кол-ву." Про язык общения на форуме читали?
24 Orthodoxxx_
Reprobate
 
22.02.12
15:44
нет. я как то не вежливо, культурно выразился?
25 Шапокляк
 
22.02.12
15:48
(24) Культурно, вежливо. Вы не могли бы излагать свои вопросы на русском языке? Поверьте, очень сложно понять ваш вопрос.
26 Orthodoxxx_
Reprobate
 
22.02.12
16:10
нужна обработка на форме которой задаются реквизиты номенклатуры и базовые единицы измерения. при нажатии кнопки выполнить в справочнике номенклатура должен создаваться элемент с этой ед. измерения.
в спойлере код что сделал
не знаю как сделать чтобы задавались нужные реквизиты
27 DexterMorgan
 
22.02.12
16:20
(26) Да просто создай у этой обработки реквизит с типом НоменклатураОбъект и свяжи элемент формы базовая единица измерения с НомеклатураОбъект.БазоваяЕдиницаИзмерения
28 Шапокляк
 
22.02.12
16:28
(26) Так более понятно
Процедура КнопкаВыполнитьНажатие(Кнопка)
   // Вставить содержимое обработчика.

   
НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
НовыйЭлемент.ЕдиницаИзмеренияМест = БазоваяЕдиницаИзмерения;
/////  а остальные три раза зачем?
НовыйЭлемент.ЕдиницаИзмеренияМест = ЕдиницаХраненияОстатков;
НовыйЭлемент.ЕдиницаИзмеренияМест = ЕдиницыДляОтчетов;
НовыйЭлемент.ЕдиницаИзмеренияМест = ЕдиницыМест;
НовыйЭлемент.Наименование = НаименованиеПолное;
НовыйЭлемент.НаименованиеПолное = НаименованиеПолное;
НовыйЭлемент.ОсновнойПоставщик = ОсновнойПоставщик;
НовыйЭлемент.СтавкаНДС = СтавкаНДС;
НовыйЭлемент.Записать();
Форма = Справочники.Номенклатура.ПолучитьФормуСписка(); ////несколько неясно, а зачем форму списка открывать
Форма.Открыть();

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

Процедура ПроверитьЕдиницуХраненияОстатков(Отказ) //// для чего эта процедура и откуда она вызывается?

Если ЗначениеЗаполнено(ЕдиницаХраненияОстатков) Тогда ///а оно откуда заполнится у нового элемента, если см.выше его ни кто не заполняет?
       Возврат;
   КонецЕсли;

   ВыборкаЕдиниц = Справочники.ЕдиницыИзмерения.Выбрать -//// а здесь точно не выдает ошибку? Впрочем, если процедура никогда не запускается, наверно, и не выдает; Если у вас УТ, то справочник Единицы измерения подчинен номенклатуре
   Если ВыборкаЕдиниц.Следующий() Тогда
       НайденнаяЕдиница = ВыборкаЕдиниц.Ссылка;
   Иначе
       НайденнаяЕдиницаОбъект = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
       НайденнаяЕдиницаОбъект.Наименование            = БазоваяЕдиницаИзмерения.Наименование;
       НайденнаяЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения;
       НайденнаяЕдиницаОбъект.Коэффициент             = 1;
       НайденнаяЕдиницаОбъект.Владелец                = ВыборкаЕдиниц.Ссылка;/// так это ж выборка, как она владельцем будет?

       Попытка
           НайденнаяЕдиницаОбъект.Записать();
       Исключение
           Сообщить("Не удалось записать единицу хранения остатков: " + ОписаниеОшибки(), СтатусСообщения.Важное);
           Отказ = Истина;
           Возврат;
       КонецПопытки;

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

А вы такую схему создания элементов справочника придумали, чтобы не давать пользователю прав на интерактивное редактирование?


КонецПроцедуры
29 Orthodoxxx_
Reprobate
 
24.02.12
10:15
второй день уже парюсь с обработкой этой. помогите. конфа Комплексная автоматизация
не могу сделать чтобы после заполнения поля Базовая единица измерения, указанные ед измерения автоматически проставлялись в полях:
единица хранения остатков
единицы для отчетов
единицы мест

Процедура КнопкаВыполнитьНажатие(Кнопка)
   // Вставить содержимое обработчика.
НовыйЭлемент = Справочники.Номенклатура.СоздатьЭлемент();
НовыйЭлемент.ЕдиницаИзмеренияМест = БазоваяЕдиницаИзмерения;    
НовыйЭлемент.ЕдиницаИзмеренияМест = ЕдиницаХраненияОстатков;
НовыйЭлемент.ЕдиницаИзмеренияМест = ЕдиницыДляОтчетов;
НовыйЭлемент.ЕдиницаИзмеренияМест = ЕдиницыМест;
НовыйЭлемент.Наименование = НаименованиеПолное;
НовыйЭлемент.НаименованиеПолное = НаименованиеПолное;
НовыйЭлемент.ОсновнойПоставщик = ОсновнойПоставщик;
НовыйЭлемент.СтавкаНДС = СтавкаНДС;
НовыйЭлемент.Записать();
Форма = Справочники.Номенклатура.ПолучитьФормуСписка();

Форма.Открыть();

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

Процедура ЕдиницаХраненияОстатковНачалоВыбора(Элемент, СтандартнаяОбработка)

   СтандартнаяОбработка = РаботаСДиалогами.ЗаписатьНовыйОбъектВФорме(ЭтаФорма);

КонецПроцедуры // ЕдиницаХраненияОстатковНачалоВыбора()

Процедура МестаХраненияПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
   Ссылка = Элемент.ТекущиеДанные.Номенклатура;
   Если НоваяСтрока Тогда
       Элемент.ТекущиеДанные.Номенклатура = Ссылка;
   КонецЕсли;

КонецПроцедуры // МестаХраненияПриНачалеРедактирования()


Процедура ПроверитьЕдиницуХраненияОстатков(Отказ)

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

       Попытка
           НайденнаяЕдиницаОбъект.Записать();
       Исключение
           Сообщить("Не удалось записать единицу хранения остатков: " + ОписаниеОшибки(), СтатусСообщения.Важное);
           Отказ = Истина;
           Возврат;
       КонецПопытки;

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

   ЕдиницаХраненияОстатков = НайденнаяЕдиница;

КонецПроцедуры // ПроверитьЕдиницуХраненияОстатков()
30 SeraFim
 
24.02.12
10:20
тебе уже указали на ошибку:
НовыйЭлемент.ЕдиницаИзмеренияМест = БазоваяЕдиницаИзмерения;    
НовыйЭлемент.ЕдиницаИзмеренияМест = ЕдиницаХраненияОстатков;
НовыйЭлемент.ЕдиницаИзмеренияМест = ЕдиницыДляОтчетов;
НовыйЭлемент.ЕдиницаИзмеренияМест = ЕдиницыМест;
31 Orthodoxxx_
Reprobate
 
24.02.12
10:21
первое что было нужно сделал, в данных указал путь к БазоваяЕдиницаИзмерения
но по прежнему после нажатия выполнить в элементе номенклатуры на выставляются единицы автоматически
32 palpetrovich
 
24.02.12
12:28
а так?
НовыйЭлемент.ЕдиницаИзмеренияМест = БазоваяЕдиницаИзмерения;    
НовыйЭлемент.ЕдиницаХраненияОстатков = ЕдиницаХраненияОстатков;
НовыйЭлемент.ЕдиницыДляОтчетов = ЕдиницыДляОтчетов;
НовыйЭлемент.ЕдиницыМест = ЕдиницыМест;

чуть более тонкий намек :)