![]() |
![]() |
![]() |
|
Подскажите как создать спецификацию | ☑ | ||
---|---|---|---|---|
0
msk-07
22.04.14
✎
14:22
|
Подскажите, имея наименование в коде номенклатуры, как можно создать для этой номенклатуры спецификацию?
примерно шаблон кода напишите. Буду очень признателен! |
|||
1
shuhard
22.04.14
✎
14:29
|
(0) [наименование в коде номенклатуры]
чё ? |
|||
2
wade25
22.04.14
✎
14:34
|
(1) Посмотри темы ТС.
А автор имеет ввиду как программно создать спецификацию номенклатуры. (0) Смотри, в каком регистре хранятся спецификации и гугли как создать запись в регистре сведений. |
|||
3
neo_matrix_123
22.04.14
✎
14:35
|
есть такое. щас раскопаю
|
|||
4
NcSteel
22.04.14
✎
14:37
|
У меня есть палка копалка, подскажите как стать человеком?
|
|||
5
vicof
22.04.14
✎
14:39
|
(4) Нужно копать. И чем больше, тем лучше.
|
|||
6
msk-07
22.04.14
✎
14:48
|
(3) Буду благодарен если шаблончик какой нибудь кинешь.
|
|||
7
neo_matrix_123
22.04.14
✎
14:51
|
кстати не к системе интеграции случаем это надо. то, что ищу, у меня для лоцман
|
|||
8
msk-07
22.04.14
✎
14:53
|
(7) это нужно лично мне
|
|||
9
vicof
22.04.14
✎
15:05
|
(0)
Спека = Справочники.СпецификацииНоменклатуры.СоздатьЭлемент(); Спека.Владелец = СсылканаНоменклатуру; Спека.Записать(); |
|||
10
vicof
22.04.14
✎
15:05
|
(8) Давно бы уже руки к клаве протянул и попробовал
|
|||
11
Kalambur
22.04.14
✎
15:06
|
(9) Спека.Владелец = Спека.ВыходныеИзделия.Номенклатура
|
|||
12
vicof
22.04.14
✎
15:08
|
(11) А тут детали не уточняются, просили пример кода.
|
|||
13
neo_matrix_123
22.04.14
✎
15:17
|
СоединениеСТаблицейСпецификаций();
РодительСпецификаций = Справочники.СпецификацииНоменклатуры.НайтиПоНаименованию("Спецификации из Лоцмана"); Если РодительСпецификаций = Справочники.СпецификацииНоменклатуры.ПустаяСсылка() Тогда РодительСпецификацийГруппа = Справочники.СпецификацииНоменклатуры.СоздатьГруппу(); РодительСпецификацийГруппа.Наименование = "Спецификации из Лоцмана"; РодительСпецификацийГруппа.Записать(); РодительСпецификаций = РодительСпецификацийГруппа.Ссылка; КонецЕсли; К=0; Счетчик = 1; Для каждого строка из ТЗСпецификаций Цикл Сообщить (Счетчик); Счетчик = Счетчик +1; ФлагЧегоДелаем = ""; Сообщить ("ФлагЧегоДелаем"); КодНоменклатуры = СокрЛП(строка.Код1С); Сообщить ("Код Номенклатуры"); Сообщить (КодНоменклатуры); СпрНоменклатура = Справочники.Номенклатура.НайтиПоКоду(КодНоменклатуры); Сообщить ("СпрНоменклатура"); Сообщить (СпрНоменклатура); СоставСпецификации = ПолучитьНаполнениеСпецификации(Строка); Если СоставСпецификации.Количество() = 0 Тогда Сообщить ("СоставСпецификации.Количество() = 0"); Продолжить; КонецЕсли; Если (СпрНоменклатура = Неопределено) или (СпрНоменклатура = Справочники.Номенклатура.ПустаяСсылка()) Тогда Сообщить("Не найдена номенклатура с кодом: "+строка.Код1С); Продолжить; КонецЕсли; ФлагЧегоДелаем = "Создаем"; СпрСпецификацияОбъект=Справочники.СпецификацииНоменклатуры.СоздатьЭлемент(); СпрСпецификацияОбъект.Родитель = РодительСпецификаций; //***** С этого места изменение родителя спецификации // на основании полученого кода. РодительПоКоду = ОбработкаКода (Строка.НаименованиеСЛоцмана, СпрНоменклатура.Наименование); Если Не РодительПоКоду = 0 Тогда СпрСпецификацияОбъект.Родитель = РодительПоКоду; КонецЕсли; СпрСпецификацияОбъект.ВидСпецификации = Перечисления.ВидыСпецификаций.Сборочная; СпрСпецификацияОбъект.Комментарий = "##Перенесено из Лоцман по спецификации "+Строка.НаименованиеСЛоцмана; СпрСпецификацияОбъект.Ответственный = глЗначениеПеременной("глТекущийПользователь"); СпрСпецификацияОбъект.Состояние = Перечисления.СостоянияОбъектов.Утвержден; СпрСпецификацияОбъект.Активная = Истина; СпрСпецификацияОбъект.ДатаУтверждения = ТекущаяДата()-60*60*24; СтрокаВИ = СпрСпецификацияОбъект.ВыходныеИзделия.Добавить(); СтрокаВИ.Номенклатура = СпрНоменклатура; //****** единица измерений СтрокаВИ.ЕдиницаИзмерения = СпрНоменклатура.ЕдиницаХраненияОстатков; СтрокаВИ.Кратность = 1; //****** Если Строка.Максимум = "" Тогда СтрокаВИ.Количество = Строка.Максимум; Иначе СтрокаВИ.Количество = 1; КонецЕсли; СпрСпецификацияОбъект.Наименование = СпрНоменклатура.Наименование; Для каждого строкаСостава из СоставСпецификации Цикл СтрокаИсхКомпл = СпрСпецификацияОбъект.ИсходныеКомплектующие.Добавить(); КодНоменклатуры = СокрЛП(строкаСостава.Kod_1C); СпрНоменклатураИсх = Справочники.Номенклатура.НайтиПоКоду(КодНоменклатуры); Если СпрНоменклатураИсх = Неопределено Тогда Сообщить("Не найдено наполнение номенклатуры по коду "+строкаСостава.Kod_1C); Продолжить; КонецЕсли; СтрокаИсхКомпл.Номенклатура = СпрНоменклатураИсх; СтрокаИсхКомпл.СтатьяЗатрат = СпрНоменклатураИсх.СтатьяЗатрат; СтрокаИсхКомпл.ВидВоспроизводства = СпрНоменклатураИсх.ВидВоспроизводства; далее кусок обработки ЕИ с утановлением владельца СтрокаИсхКомпл.ЕдиницаИзмерения = СпрНоменклатураИсх.ЕдиницаХраненияОстатков; Если Не ЕдИзмеренияПроверка = СпрНоменклатураИсх.БазоваяЕдиницаИзмерения Тогда ЗапросЕдиниц = Новый Запрос; ЗапросЕдиниц.Текст = "ВЫБРАТЬ | ЕдиницыИзмерения.Ссылка, | ЕдиницыИзмерения.Представление, | ЕдиницыИзмерения.Владелец, | ПРЕДСТАВЛЕНИЕ(ЕдиницыИзмерения.Владелец), | ЕдиницыИзмерения.ЕдиницаПоКлассификатору, | ПРЕДСТАВЛЕНИЕ(ЕдиницыИзмерения.ЕдиницаПоКлассификатору) |ИЗ | Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения |ГДЕ | ЕдиницыИзмерения.ПометкаУдаления = ЛОЖЬ | И ЕдиницыИзмерения.Владелец = &Владелец | И ЕдиницыИзмерения.ЕдиницаПоКлассификатору = &ЕдиницаПоКлассификатору"; ЗапросЕдиниц.УстановитьПараметр("Владелец", СпрНоменклатураИсх); ЗапросЕдиниц.УстановитьПараметр("ЕдиницаПоКлассификатору", ЕдИзмеренияПроверка); РезультатЗапроса = ЗапросЕдиниц.Выполнить(); ВыборкаДетали = РезультатЗапроса.Выбрать(); НетЗаписи = ИСТИНА; Пока ВыборкаДетали.Следующий() Цикл СсылкаСправочникаЕдиниц = ВыборкаДетали.Ссылка; ЭлементСправочникаЕдиниц = СсылкаСправочникаЕдиниц; НетЗаписи = ЛОЖЬ; КонецЦикла; Если НетЗаписи = ИСТИНА Тогда ЭлементСправочникаЕдиниц = Справочники.ЕдиницыИзмерения.СоздатьЭлемент(); Сообщить (СпрНоменклатураИсх); ЭлементСправочникаЕдиниц.Владелец = СпрНоменклатураИсх; ЭлементСправочникаЕдиниц.Наименование = ЕдИзмеренияПроверка.Наименование; ЭлементСправочникаЕдиниц.Коэффициент = 1; ЭлементСправочникаЕдиниц.ЕдиницаПоКлассификатору = ЕдИзмеренияПроверка; ЭлементСправочникаЕдиниц.Записать(); ЭлементСправочникаЕдиниц = ЭлементСправочникаЕдиниц.Ссылка; КонецЕсли; СтрокаИсхКомпл.ЕдиницаИзмерения = ЭлементСправочникаЕдиниц; //другие ТЧ обрабатываем по аналогии СпрСпецификацияОбъект.Записать(); РегСвед = РегистрыСведений.ОсновныеСпецификацииНоменклатуры.СоздатьМенеджерЗаписи(); РегСвед.Номенклатура = СпрНоменклатура; РегСвед.Период = ТекущаяДата()-60*60*24; РегСвед.СпецификацияНоменклатуры = СпрСпецификацияОбъект.Ссылка; регСвед.Записать(); |
|||
14
neo_matrix_123
22.04.14
✎
15:24
|
устанавливается наличие владельца в справочнике Номенклатура - продукция, полуфабрикат и т.д.
далее если создается новый заполняем сначала болванку с шапкой спецификации. присваиваем нужный статус - в примере только утвержден. потом загружаем данные в ТЧ исходные комплектующие. отдельный кусок кода на имеющиеся подчиненные ЕИ или на их создание внутри. устанавливаем необходимые значения в колонки ТЧ (статья затрат и т.д.) остальные ТЧ по аналогии. потом запись делаем в РС основные спецификации номенклатуры вот как-то так... |
|||
15
msk-07
22.04.14
✎
16:22
|
Спасибо!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |