powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / V7.7Рарус техкарта программно, может кто-то сталкивался?
10 сообщений из 10, страница 1 из 1
V7.7Рарус техкарта программно, может кто-то сталкивался?
    #37035011
Woodall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго всем времени суток!

Так и не смог найти ответ на вопрос на форуме.
Вопрос состоит в следующем:
Позаказное индивидуальное мебельное производство, т.е. все проекты разные. Разработка проектов ведется в К3. Задача: автоматизировать передачу данных с К3 в 1С. Стандартный модуль загрузки заказов из К3 формирует Множественное задание на производство, которое нам не подходит. Попробовали переделать модуль на формирование Задания на производство, после импорта материалы СРАЗУ списываются. Получилось только создание техкарты, с материалами нет проблем, а вот как в нее программно добавить производственные операции?

Хотелось бы вот этот код изменить типа:
Если КодНоменклатуры=... тогда добавить материал иначе добавить операцию

ДокТехКарта=СоздатьОбъект("Документ.ТехнологическаяКарта");
КодНоменклатуры=СокрЛП(БД_Материалы.MATID);
НаимНоменклатуры=СокрЛП(БД_Материалы.MATNAME);
Номенклатура=ПолучитьНоменклатуру(КодНоменклатуры,НаимНоменклатуры,"Материалы");
КодЕд=СокрЛП(БД_Материалы.UNITID); НаимЕд=СокрЛП(БД_Материалы.UNITNAME);
ДокТехКарта.НоваяСтрока();
ДокТехКарта.Номенклатура=Номенклатура;
ДокТехКарта.Количество=БД_Материалы.COUNT;
ДокТехКарта.Единица=ПолучитьЕдиницу(Номенклатура,КодЕд,Наимед);
БД_Материалы.Следующая();
КонецЦикла;
тз=СоздатьОбъект("ТаблицаЗначений");
ДокЗадание.ВыгрузитьТабличнуюЧасть(тз);

Може кто-то сталкивался с таким вопросом, подскажите как можно это сделать?
...
Рейтинг: 0 / 0
V7.7Рарус техкарта программно, может кто-то сталкивался?
    #37035308
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну вы ведь уже сами ответили на вопрос

авторЕсли КодНоменклатуры=... тогда добавить материал иначе добавить операцию

храните где-то список кодов номенклатуры (или в справочнике номенклатуры заведите признак того что это операция) которые есть операциями и сравнивайте

ну или я сути проблемы не понял
...
Рейтинг: 0 / 0
V7.7Рарус техкарта программно, может кто-то сталкивался?
    #37035388
Woodall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Last1Cmen,

Извиняюсь, возможно неправильно сформулировал.
Возможно, я не правильно сформулировал.
С интерпретацией кода проблем нет.
Есть проблема с занесением в табличную часть операций.
Судя по конфигуратору в документе ТехКарта, как в принципе и в других, которые могут содержать производственные операции, просто нет такой таблицы значений. Такое ощущение, что для 1С производственная операция что-то абстрактное и имеет вес только при проводке Наряда. В коде загрузки формы ТехКарты есть функции добавления различных закладок, где присутствуют производственные операции, но это форма, и код там совсем непростой, особенно для "продвинутого юзера", каковым я являюсь . Причем когда создаешь техкарту врукопашную, на закладку операии невозможно перейти пока ее не запишешь. Может стоит сначала запустить цикл для материалов, записать, а потом добавить операции???
В любом случае спасибо за ответ :)
...
Рейтинг: 0 / 0
V7.7Рарус техкарта программно, может кто-то сталкивался?
    #37035732
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я не знаю о каком продукте идет речь (не сталкивался с данной конфигурацией) но могу предположить если "операции" в документе сделаны в закладках то они предопределены жестко конфигурацией причем т.к. табличных частей в 7.7 может быть не более одной то или материалы или операции есть таблица значений данные в которой не хранятся а выводятся при открытии формы, там модифицируются и при записи/проведении документа записываются в свое хранилище (справочник или подчиненные документы скорее всего)

в табличной части скорее всего материалы как таковые (судя по приведеному коду) да и это логично вобщем то

проблема в определении того где лежат данные по самим операциям, ищите в коде в процедуре ПриЗаписи() (если после записи появляется закладка) куда именно и как записываются операции и пробуйте повторить код но уже в обработке загрузки работая с документом как с объектом

т.е. сначала грузите номенклатурную часть потом записываете документ и создаете необходимые подчиненные документы (смотреть в код ПриЗаписи()) и позиционируясь уже на них как на объектах пытаетесь повторить код ПриЗаписи() документа ТехКарта

возможно я ошибаюсь и смотреть надо ПриПроведении() там тоже могут быть интересные вещи... сами операции может созаются после записи а заполнение их может быть в процессе проведения документа ТехКарта

вобщем я пофилософствовал на тему "чтоб я делал увидев конфигурацию впервые" :)
...
Рейтинг: 0 / 0
V7.7Рарус техкарта программно, может кто-то сталкивался?
    #37036488
Woodall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Last1Cmen,

Философия грамотного человека-сильная штука! :)
Действительно, хранилище найдено в процедуре формы ПриЗаписи():

Процедура ПриЗаписи()
АвтоВремяТекущее();
Записан=глДокументПриЗаписи(Контекст);
СтатусВозврата(Записан); Если Записан=0 Тогда Возврат; КонецЕсли;

Если тзОпераций.КоличествоСтрок()>0 Тогда
Спр=СоздатьОбъект("Справочник.ТаблицаПроизводственныхОпераций");
Если Выбран()=0 Тогда Записать(); КонецЕсли;
тзОпераций.ВыбратьСтроки();
Пока тзОпераций.ПолучитьСтроку()=1 Цикл
Если ПустоеЗначение(тзОпераций.Элемент)=1 Тогда
Спр.Новый();
Спр.Документ=ТекущийДокумент();

Иначе Спр.НайтиЭлемент(тзОпераций.Элемент);
КонецЕсли;
Сообщить(ТекущийДокумент());
Спр.ПроизводственнаяОперация=тзОпераций.ПроизводственнаяОперация;
Спр.Количество=тзОпераций.Количество;
Спр.НеИзмКоличество=?(тзОпераций.НеИзмКоличество=2,1,0);
Спр.Порядок=тзОпераций.Порядок;
Спр.Записать();
Если Спр.ПометкаУдаления()=1 Тогда Спр.СнятьПометкуУдаления(); КонецЕсли;
КонецЦикла;
КонецЕсли;

Вроде все хорошо, но моих скудных навыков VBA не хватает, чтобы скрутить вместе документ Технологическая карта и справочник Таблица производственных операций :(
Что не так в моем коде?:
Спр=СоздатьОбъект("Справочник.ТаблицаПроизводственныхОпераций");
СпрОпер=СоздатьОбъект("Справочник.ПроизводственныеОперации");
Для к=НомерЗаписи по БД_Материалы.КоличествоЗаписей() Цикл
Если БД_Материалы.Ключ.CUSTID<>БД.CUSTID Тогда Прервать; КонецЕсли;
Если Число(БД_Материалы.SORT)>5 Тогда //Ругается, что сначала надо установить объект на запись
Спр.Новый();
Спр.Документ=ДокЗадание.НомерДок;
ПрОперация=ПолучитьОперацию(БД_Материалы.MATNAME);
Спр.Количество=БД_Материалы.COUNT;
Спр.ПроизводственнаяОперация=ПрОперация;
Спр.Записать();
КонецЕсли;
БД_Материалы.Следующая();
КонецЦикла;
...
Рейтинг: 0 / 0
V7.7Рарус техкарта программно, может кто-то сталкивался?
    #37036722
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что с дбф и руганью на запись думаю сам разберешься а вот
...
Рейтинг: 0 / 0
V7.7Рарус техкарта программно, может кто-то сталкивался?
    #37036746
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что-то с новым форумом и хоткеями не то :) отправилось раньшечем набралось

вобщем

Спр.Документ=ДокЗадание.НомерДок;

означает то что ты в реквизит справочника пишешь не ссылку на документ а номер его что есть не тем типом

надо

Спр.Документ=Объект.ТекущийДокумент();

Где этот ТекущийДокумент(); есть объект типа "документ" который создаешь перед загрузкой

//сначала создаем документ
ДокЗадание= СоздатьОбъект("Документ.Документ.ТехнологическаяКарта");
ДокЗадание.Новый();
.... // заполняем документ
ДокЗадание.Записать();
// теперь создаем операции и пишем в них ссылку на документ (тем самым связывая документ с его операциями)
Спр=СоздатьОбъект("Справочник.ТаблицаПроизводственныхОпераций");
Пока "выборка" Цикл
Спр.Новый();
Спр.Документ=ДокЗадание.ТекущийДокумент();
.... // записываем данные справочника
Спр.Записать();
КонецЦикла;
//если надо проводим документ (следя за тем чтоб не изменились записи в справочник при проведении т.к. таблицу в документе мы не заполняем, возможно потребуется изменить процедуру проведения документа для этого... если же ничего со справочником не делается когда таблица операций в документе пустая то нам повезло и ничего делать не нужно)
ДокЗадание.Провести();


как то так вобщем... а что такое
СпрОпер=СоздатьОбъект("Справочник.ПроизводственныеОперации");
?

в исходном коде ПриЗаписи() такого объекта небыло

и так по количеству операций
...
Рейтинг: 0 / 0
V7.7Рарус техкарта программно, может кто-то сталкивался?
    #37037153
Woodall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все равно ругается, но уже работает :-)
Last1CmenСпр.Документ=ДокЗадание.ТекущийДокумент();
Кажется, я сначала так же и делал, ругалась, что элемент не найден, ну или, наверное, почти так же :-)
Last1Cmenкак то так вобщем... а что такое
СпрОпер=СоздатьОбъект("Справочник.ПроизводственныеОперации");
?

в исходном коде ПриЗаписи() такого объекта небыло

и так по количеству операций Ну да, при работе с формой, операции выбираются из Справочника Производственных операций врукопашку и их количество соответственно тоже, как сделать программно по-другому я не смог придумать. Причем справочник довольно интересный: у производственных операций нет кода и идентифицировать их можно только по наименованию, он даже спокойно позволяет создавать абсолютно одинаковые наименования 8-о

Last1Cmen//если надо проводим документ (следя за тем чтоб не изменились записи в справочник при проведении т.к. таблицу в документе мы не заполняем, возможно потребуется изменить процедуру проведения документа для этого... если же ничего со справочником не делается когда таблица операций в документе пустая то нам повезло и ничего делать не нужно)
Если честно, не совсем понятно, вернее, совсем непонятно. Возможно я ошибаюсь, но это справочник вроде как для "внутреннего" пользования, т.е. я не припоминаю, чтоб он был в меню, хотя обязательно завтра проверю.
Last1Cmenчто с дбф и руганью на запись думаю сам разберешься а вот Неужели что-то с дбф??? Первый цикл по материалам проходит на ура, если второй цикл сделать пустым, то тоже все нормально, а как только во второй цикл вставляешь любую операцию, сразу ругается про постановку объекта на запись :(

Да, Премного благодарностей, самостоятельно долго бы еще пришлось копать :)
ЗЫ: Вот бы еще "пиночек" в правильном направлении по поводу ругани :)
...
Рейтинг: 0 / 0
V7.7Рарус техкарта программно, может кто-то сталкивался?
    #37037204
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"на взлет" не помню (насчет ругани) но возможно после цикла надо заново спозиционироватся в начало (метод Первая()) может переоткрыть или еще чего... честно не помню я этих дбф ужо

по поводу проведения что хотел сказать

смотри...

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

т.е. если ты эту таблицу значений (что на форме документа) не заполняешь то при проведении документа этот самый анализ может некорректно отработать т.к. в таблице ничего нет

это нужно учесть просмотрев модуль формы процедуру ПриПроведении()
...
Рейтинг: 0 / 0
V7.7Рарус техкарта программно, может кто-то сталкивался?
    #37038211
Woodall
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Last1Cmen"на взлет" не помню (насчет ругани) но возможно после цикла надо заново спозиционироватся в начало (метод Первая()) Волшебник :) точно Первая()
Еще раз огромное спасибо - все работает :)
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / V7.7Рарус техкарта программно, может кто-то сталкивался?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]