|   |   | 
| 
 | Документы ОтчетПроизводстваЗаСмену СоздатьДокумент | ☑ | ||
|---|---|---|---|---|
| 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 | 
        Вот код если кому нежен пожалуйста.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |