|
Документы ОтчетПроизводстваЗаСмену СоздатьДокумент | ☑ | ||
---|---|---|---|---|
0
ay-vava
25.09.19
✎
12:43
|
Вот уже 3 дня не могу программно заполнить спецификация продукта на 1с 8.1;
proi=Документы.ОтчетПроизводстваЗаСмену.СоздатьДокумент(); proi.Дата=ТекущаяДата(); proi.Организация=Справочники.Организации.НайтиПоКоду("000000001"); proi.Склад=Справочники.Склады.НайтиПоКоду("000000003"); proi.ПодразделениеОрганизации=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000001"); proi.ОтражатьВНалоговомУчете=Ложь; proi.ИспользоватьМатериалы=Истина; proi.СчетЗатрат=ПланыСчетов.Хозрасчетный.ОсновноеПроизводство; proi.Комментарий="Ав. созд."; Raw=proi.Продукция.Добавить(); NНоменклатура=Справочники.Номенклатура.НайтиПоКоду("00000000013"); Raw.Номенклатура=NНоменклатура; Raw.Количество=1; Raw.ПлановаяСтоимость=1; Raw.Счет=ПланыСчетов.Хозрасчетный.ГотоваяПродукция; Raw.Спецификация=Справочники.СпецификацииНоменклатуры.НайтиПоКоду("000000001"); Raw.СуммаПлановая=1*1; Raw.НоменклатурнаяГруппа=Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000001"); Материалы=proi.Материалы.Добавить(); proi.Записать(); Вот и сам код код очень простой просто добавить продукция на документ производство. Через интерфейс я могу производить продукт но вот программно не смог. В интерфейсе на табличном части "Материалы" есть одно волшебная кнопка "Заполнить" и я хочу создать функции этого волшебную кнопку. Помогите пж кто сможет. |
|||
1
ДенисЧ
25.09.19
✎
12:46
|
А если открыть функцию, которая вызывается по этой кнопке? Или это не наш метод, Шурик?
|
|||
2
ay-vava
25.09.19
✎
12:49
|
(1) я точно так и сделал но вот на коде есть ошибки
Результат = УправлениеПроизводством.РассчитатьРасходСырьяПоСпецификации(Ссылка, "Продукция"); РезультатУслуги = УправлениеПроизводством.РассчитатьРасходСырьяПоСпецификации(Ссылка, "Услуги"); ТаблицаМатериалов = Результат.Выгрузить(); ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(РезультатУслуги.Выгрузить(), ТаблицаМатериалов); ТаблицаМатериалов.Свернуть("Номенклатура,ЕдиницаИзмерения,НоменклатурнаяГруппа", "Количество"); Материалы.Загрузить(ТаблицаМатериалов); Для Каждого Стр Из Материалы Цикл ЗаполнитьСчетаУчетаВСтрокеТабЧасти(Стр, "Материалы", Истина, ОтражатьВНалоговомУчете); Стр.Коэффициент = 1; Стр.ОтражениеВУСН = Перечисления.ОтражениеВУСН.Принимаются; Стр.СтатьяЗатрат = Стр.Номенклатура.СтатьяЗатрат; Стр.НоменклатурнаяГруппа = Стр.НоменклатурнаяГруппа; КонецЦикла; |
|||
3
ay-vava
25.09.19
✎
12:50
|
(2) то есть ошибка появилось на моем коде.
|
|||
4
hhhh
25.09.19
✎
13:00
|
(3) ну, ошибка появилась, исправить. Ошибки они всегда появляются.
|
|||
5
ay-vava
25.09.19
✎
13:01
|
(4) если я смог уже сделал бы сам. для помощь к вам ОБРАЩАЮСЬ.
|
|||
6
shuhard
25.09.19
✎
13:03
|
(5) не ори - забанят (с)
|
|||
7
hhhh
25.09.19
✎
13:11
|
(5) если бы обращался, то всё бы подробно расписал, какая ошибка, где, в какой строчке. А это у тебя не обращение.
|
|||
8
ДенисЧ
25.09.19
✎
13:11
|
(3) (5) Ошибку озвучить Сарумян не позволяет?
|
|||
9
ay-vava
25.09.19
✎
13:14
|
(7) Хочу добавить на табличный часть "Материалы" спецификации переменной NНоменклатура(имеет спецификации) программно
|
|||
10
ДенисЧ
25.09.19
✎
13:15
|
(9) Это ты очень подробно ответил на вопрос "какая ошибка, где, в какой строчке"...
|
|||
11
ay-vava
25.09.19
✎
13:17
|
(10) Забудьте об этом.
|
|||
12
Джинн
25.09.19
✎
13:18
|
Убивал бы за смесь кириллицы и латиницы без крайней на то необходимости!
|
|||
13
Консультант Баранов
25.09.19
✎
13:19
|
(9) Хоти, это можно.
Если у тебя ошибки то сделай скриншот и выложи, телепатов тут не очень много. Но для начала попробуй Материалы.Загрузить(ТаблицаМатериалов); Для Каждого Стр Из Материалы Цикл Заменить на proi.Материалы.Загрузить(ТаблицаМатериалов); Для Каждого Стр Из proi.Материалы Цикл |
|||
14
ay-vava
25.09.19
✎
13:23
|
(13) Спасибо для ответа что поставить в место Ссылка на
Результат = УправлениеПроизводством.РассчитатьРасходСырьяПоСпецификации(<font color='red'>Ссылка</font>, "Продукция"); РезультатУслуги = УправлениеПроизводством.РассчитатьРасходСырьяПоСпецификации(Ссылка, "Услуги"); |
|||
15
ay-vava
25.09.19
✎
13:26
|
(10) {ОбщийМодуль.УправлениеПроизводством(280)}: Ошибка при вызове метода контекста (Выполнить): {(18, 3)}: Таблица не найдена "Документ.Номенклатура.Продукция"
<<?>>Документ.Номенклатура.Продукция КАК ДокументОснованиеТаблица Возврат Запрос.Выполнить(); по причине: {(18, 3)}: Таблица не найдена "Документ.Номенклатура.Продукция" <<?>>Документ.Номенклатура.Продукция КАК ДокументОснованиеТаблица |
|||
16
ay-vava
25.09.19
✎
13:46
|
(15) есть кто???
|
|||
17
Креатив
25.09.19
✎
13:52
|
(15)Смотри запрос,который выполняется в 280-й строке ОбщийМодуль.УправлениеПроизводством.
|
|||
18
ay-vava
25.09.19
✎
13:52
|
(7) ну хот ответ Никулка.
|
|||
19
Креатив
25.09.19
✎
13:53
|
Вероятней всего у документа Номенклатура нет таблицы продукция.
|
|||
20
ay-vava
25.09.19
✎
13:59
|
(19) Да правильно
|
|||
21
Консультант Баранов
25.09.19
✎
15:08
|
(14) proi.ССылка
|
|||
22
Консультант Баранов
25.09.19
✎
15:09
|
(15) Весь текст модуля выложи
|
|||
23
ay-vava
25.09.19
✎
15:54
|
(22) proi=Документы.ОтчетПроизводстваЗаСмену.СоздатьДокумент();
proi.Дата=ТекущаяДата(); proi.Организация=Справочники.Организации.НайтиПоКоду("000000001"); proi.Склад=Справочники.Склады.НайтиПоКоду("000000003"); proi.ПодразделениеОрганизации=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000001"); proi.ОтражатьВНалоговомУчете=Ложь; proi.ИспользоватьМатериалы=Истина; proi.СчетЗатрат=ПланыСчетов.Хозрасчетный.ОсновноеПроизводство; proi.Комментарий="Ав. созд."; Raw=proi.Продукция.Добавить(); NНоменклатура=Справочники.Номенклатура.НайтиПоКоду("00000000016"); Raw.Номенклатура=NНоменклатура; Raw.Количество=1; Raw.ПлановаяСтоимость=1; Raw.Счет=ПланыСчетов.Хозрасчетный.ГотоваяПродукция; Raw.Спецификация=Справочники.СпецификацииНоменклатуры.НайтиПоКоду("000000002"); Raw.СуммаПлановая=1*1; Raw.НоменклатурнаяГруппа=Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000001"); Запрос = Новый Запрос; Запрос.Текст="ВЫБРАТЬ | ЕСТЬNULL(СпецификацииНоменклатурыИсходныеКомплектующие.Количество, 0) КАК Количество, | СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура.Ссылка КАК Номенклатура, | СпецификацииНоменклатуры.Владелец.Ссылка КАК Владелец, | СпецификацииНоменклатуры.Ссылка КАК СпецификацияСсылка |ИЗ | Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры КАК СпецификацииНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг | ПО (РеализацияТоваровУслуг.Товары.Номенклатура.Ссылка = СпецификацииНоменклатуры.Владелец.Ссылка) | ПО СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка = СпецификацииНоменклатуры.Ссылка |ГДЕ | СпецификацииНоменклатуры.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Raw.Спецификация); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий()Цикл Если Raw.Номенклатура = Выборка.Владелец Тогда //Raw.Спецификация = Выборка.СпецификацияСсылка; Если Не Raw.Спецификация.Пустая() Тогда СтрМатериалов = proi.Материалы.Добавить(); СтрМатериалов.Номенклатура = Выборка.Номенклатура; СтрМатериалов.Счет = ПланыСчетов.Хозрасчетный.СырьеИМатериалы; СтрМатериалов.НоменклатурнаяГруппа = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Основная номенклатурная группа"); СтрМатериалов.СтатьяЗатрат = Справочники.СтатьиЗатрат.НайтиПоНаименованию("Материальные расходы"); СтрМатериалов.Количество = Выборка.Количество*Raw.Количество; proi.Материалы.Свернуть("Номенклатура, Счет, НоменклатурнаяГруппа, СтатьяЗатрат", "Количество"); КонецЕсли; КонецЕсли; КонецЦикла; proi.Записать(); вот таким образом хорошо работает но есть один проблема не смог решить |
|||
24
ay-vava
25.09.19
✎
15:55
|
Raw.Спецификация=Справочники.СпецификацииНоменклатуры.НайтиПоКоду("000000002");
вот код но мне нужен чтобы Raw.Спецификация я получить от NНоменклатура это возможно?? |
|||
25
Консультант Баранов
25.09.19
✎
16:09
|
У номенклатуры есть реквизит ОсновнаяСпецификацияНоменклатуры
|
|||
26
ay-vava
25.09.19
✎
16:25
|
(25) Я так и сделал даже. Но не получилось.
|
|||
27
Консультант Баранов
25.09.19
✎
16:26
|
(26) А это поле заполнено?
|
|||
28
ay-vava
25.09.19
✎
16:29
|
(25) Raw.Спецификация=NНоменклатура.ОсновнаяСпецификацияНоменклатуры.Ссылка;
вот так да? |
|||
29
Консультант Баранов
25.09.19
✎
16:30
|
Да.
Или так Raw.Спецификация=NНоменклатура.ОсновнаяСпецификацияНоменклатуры; |
|||
30
ay-vava
25.09.19
✎
16:31
|
к сожалению не получилось.
|
|||
31
Свин-опёр
25.09.19
✎
16:33
|
(30) У самой номенклатуры это поле заполнено?
|
|||
32
ay-vava
25.09.19
✎
16:33
|
(29) УправлениеПроизводством.ОпределитьСпецификациюПоУмолчанию(NНоменклатура,ТекущаяДата())
даже вот так и делал |
|||
33
ay-vava
25.09.19
✎
16:34
|
Raw.Спецификация=УправлениеПроизводством.ОпределитьСпецификациюПоУмолчанию(NНоменклатура,ТекущаяДата())
|
|||
34
Консультант Баранов
25.09.19
✎
16:37
|
вбрСпецф = Справочники.НоменклатурныеГруппы.Выбрать(,NНоменклатура);
Если вбрСпецф.Следующий() ТОгда Raw.Спецификация = вбрСпецф.Ссылка; КонецЕсли; |
|||
35
ay-vava
25.09.19
✎
16:37
|
Сообщить(NНоменклатура.ОсновнаяСпецификацияНоменклатуры.Наименование);
нечего не выводить. |
|||
36
VladZ
25.09.19
✎
16:41
|
(35) Брось, не твоё это.
|
|||
37
Консультант Баранов
25.09.19
✎
16:42
|
(35) Значит поле не заполнено.
|
|||
38
3achem
25.09.19
✎
16:46
|
(35) Не оставляйте попыток! Я думаю всё дело в том, что вы часть пишите по-русски, а часть на английском! Пишите всё на английском!
|
|||
39
ay-vava
25.09.19
✎
16:52
|
Ребята. Не издевайтесь пожалуйста.
|
|||
40
ay-vava
25.09.19
✎
16:56
|
(34) Здесь немного Вы автомат ошиблись
вбрСпецф = Справочники.СпецификацииНоменклатуры.Выбрать(,NНоменклатура); Если вбрСпецф.Следующий() ТОгда Raw.Спецификация = вбрСпецф.Ссылка; КонецЕсли; я просто поменял част кода от НоменклатурныеГруппы на СпецификацииНоменклатуры |
|||
41
ay-vava
25.09.19
✎
16:57
|
(34) Но Вам ОГРОМНАЯ СПАСИБО ЗА ПОМОЩЬ.
|
|||
42
ay-vava
25.09.19
✎
16:58
|
proi=Документы.ОтчетПроизводстваЗаСмену.СоздатьДокумент();
proi.Дата=ТекущаяДата(); proi.Организация=Справочники.Организации.НайтиПоКоду("000000001"); proi.Склад=Справочники.Склады.НайтиПоКоду("000000003"); proi.ПодразделениеОрганизации=Справочники.ПодразделенияОрганизаций.НайтиПоКоду("000000001"); proi.ОтражатьВНалоговомУчете=Ложь; proi.ИспользоватьМатериалы=Истина; proi.СчетЗатрат=ПланыСчетов.Хозрасчетный.ОсновноеПроизводство; proi.Комментарий="Ав. созд."; Raw=proi.Продукция.Добавить(); NНоменклатура=Справочники.Номенклатура.НайтиПоКоду("00000000016"); Raw.Номенклатура=NНоменклатура; Raw.Количество=1; Raw.ПлановаяСтоимость=1; Raw.Счет=ПланыСчетов.Хозрасчетный.ГотоваяПродукция; вбрСпецф = Справочники.СпецификацииНоменклатуры.Выбрать(,NНоменклатура); Если вбрСпецф.Следующий() ТОгда Raw.Спецификация = вбрСпецф.Ссылка; КонецЕсли; Raw.СуммаПлановая=1*1; Raw.НоменклатурнаяГруппа=Справочники.НоменклатурныеГруппы.НайтиПоКоду("000000001"); Запрос = Новый Запрос; Запрос.Текст="ВЫБРАТЬ | ЕСТЬNULL(СпецификацииНоменклатурыИсходныеКомплектующие.Количество, 0) КАК Количество, | СпецификацииНоменклатурыИсходныеКомплектующие.Номенклатура.Ссылка КАК Номенклатура, | СпецификацииНоменклатуры.Владелец.Ссылка КАК Владелец, | СпецификацииНоменклатуры.Ссылка КАК СпецификацияСсылка |ИЗ | Справочник.СпецификацииНоменклатуры.ИсходныеКомплектующие КАК СпецификацииНоменклатурыИсходныеКомплектующие | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацииНоменклатуры КАК СпецификацииНоменклатуры | ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг | ПО (РеализацияТоваровУслуг.Товары.Номенклатура.Ссылка = СпецификацииНоменклатуры.Владелец.Ссылка) | ПО СпецификацииНоменклатурыИсходныеКомплектующие.Ссылка = СпецификацииНоменклатуры.Ссылка |ГДЕ | СпецификацииНоменклатуры.Ссылка = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Raw.Спецификация); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий()Цикл Если Raw.Номенклатура = Выборка.Владелец Тогда Если Не Raw.Спецификация.Пустая() Тогда СтрМатериалов = proi.Материалы.Добавить(); СтрМатериалов.Номенклатура = Выборка.Номенклатура; СтрМатериалов.Счет = ПланыСчетов.Хозрасчетный.СырьеИМатериалы; СтрМатериалов.НоменклатурнаяГруппа = Справочники.НоменклатурныеГруппы.НайтиПоНаименованию("Основная номенклатурная группа"); СтрМатериалов.СтатьяЗатрат = Справочники.СтатьиЗатрат.НайтиПоНаименованию("Материальные расходы"); СтрМатериалов.Количество = Выборка.Количество*Raw.Количество; proi.Материалы.Свернуть("Номенклатура, Счет, НоменклатурнаяГруппа, СтатьяЗатрат", "Количество"); КонецЕсли; КонецЕсли; КонецЦикла; proi.Записать(); |
|||
43
ay-vava
25.09.19
✎
16:59
|
Вот код если кому нежен пожалуйста.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |