Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

КД справочники. указать своего родителя. самого верхнего уровня

КД справочники. указать своего родителя. самого верхнего уровня
Я
   zladenuw
 
02.01.13 - 14:58
Как указать самого верхнего уровня родителя своего.
Типа Источник1, а дальше вся иерархия как в источнике.
 
 
   fisher
 
1 - 02.01.13 - 15:03
Этот родитель в источнике есть? Или только в приемнике?
   zladenuw
 
2 - 02.01.13 - 15:12
(1) в приемники есть
   fisher
 
3 - 02.01.13 - 15:17
1) создаешь ПКО для поиска элемента справочника по коду (в ПКС только "Код", поиск по нему, в свойствах ПКО галки расставляешь, что мол только находить надо)
2) В ПКО своего справочника в ПКС "Родитель" в "Перед выгрузкой" ежели корневой элемент, то переназначаешь ПКО на 1) (свойство, кажись, "ИмяПКО" называется - глянь справку по обработчикам), и Значение = <КодРодителяВПриемнике>
   zladenuw
 
4 - 02.01.13 - 15:18
(3) да я чуток по другому сделал. в ПКО после загрузки

Если Объект.ЭтоГруппа и НЕ ЗначениеЗаполнено(Объект.Родитель) Тогда
    Объект.Родитель = Справочники.Номенклатура.НайтиПонаименованию("Упр8");
КонецЕсли;
   zladenuw
 
5 - 02.01.13 - 15:20
(3) да мне нужно сохранить всю иерархию. а ее вложить в свою группу.

И вопрос такой.

А как сразу создать Приходный кассовый на основание Реализации ?
   zladenuw
 
6 - 02.01.13 - 15:22
(5) пока вариант 1. в ПКО после загрузки создать документ и заполнить его реализацией. а можно как то еще или нет ?
   fisher
 
7 - 02.01.13 - 15:25
(3) + В правиле 1) в ПКС "Код" в "Перед загрузкой" "Значение = Источник"
(4) Можно. Но хуже. Обработчики на стороне приемника, особенно с операциями в базе, заметно влияют на производительность. Да и с точки зрения идеологии КД - это костыль.
(5) Иерархия сохранится.
(6) Если ссылка на основание есть, то основание загрузится по ссылке.
   zladenuw
 
8 - 02.01.13 - 15:27
(7) основание нет.
(4) оставлю себе на заметку. пока надо сделать что бы все работало. а там уже оптимизирую.
пока не понял как нужно сделать.
   zladenuw
 
9 - 02.01.13 - 15:28
(7) тогда получается нужно вот это все так же исправить?
Это в ПКО после загрузки.
Объект.Ответственный = глЗначениеПеременной("глТекущийПользователь");
Объект.Подразделение = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновноеПодразделение");
Объект.ТипЦен = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойТипЦенПродажи");
Объект.ВалютаДокумента = Константы.ВалютаУправленческогоУчета.Получить();
Объект.УчитыватьНДС = Истина;
Объект.СуммаВключаетНДС = Истина;
Объект.ОтражатьВУправленческомУчете = Истина;
Объект.ОтражатьВБухгалтерскомУчете = Истина;
Объект.КурсВзаиморасчетов = 1;
Объект.КратностьВзаиморасчетов = 1;
Объект.ВидПередачи = Перечисления.ВидыПередачиТоваров.СоСклада;


лТЧПриемник = Объект.Товары;
СхемыРеализацииТовары = Справочники.СхемыРеализации.Товары;
Для каждого СтрокаТовары из лТЧПриемник цикл
     СтрокаТовары.ЕдиницаИзмерения = СтрокаТовары.Номенклатура.ЕдиницаХраненияОстатков;
     СтрокаТовары.Сумма = СтрокаТовары.Цена*СтрокаТовары.Количество;
     СтрокаТовары.СтавкаНДС = СтрокаТовары.Номенклатура.СтавкаНДС;
     СтрокаТовары.СуммаНДС = УчетНДС.РассчитатьСуммуНДС(СтрокаТовары.Сумма,
                                                           Объект.УчитыватьНДС, Объект.СуммаВключаетНДС,
                                                           УчетНДС.ПолучитьСтавкуНДС(СтрокаТовары.СтавкаНДС));
     СтрокаТовары.Качество = Справочники.Качество.новый;
     СтрокаТовары.СчетУчетаБУ = ПланыСчетов.Хозрасчетный.ТоварыНаСкладе;


     СтрокаТовары.СхемаРеализации = СхемыРеализацииТовары;
     СтрокаТовары.НалоговоеНазначение = Справочники.НалоговыеНазначенияАктивовИЗатрат.НДС_Облагаемая;
     СтрокаТовары.НалоговоеНазначениеДоходовИЗатрат = Справочники.НалоговыеНазначенияАктивовИЗатрат.ХозДеятельность;
КонецЦикла;    
  Объект.СуммаДокумента = лТЧПриемник.Итог("Сумма");
лТЧПриемникУслуги = Объект.Услуги;
СхемыРеализацииУслуги = Справочники.СхемыРеализации.Услуги;
Для каждого СтрокаУслуги из лТЧПриемникУслуги цикл
    //СтрокаУслуги.ЕдиницаИзмерения = СтрокаУслуги.Номенклатура.ЕдиницаХраненияОстатков;
 
     СтрокаУслуги.Сумма = СтрокаУслуги.Цена*СтрокаУслуги.Количество;
     СтрокаУслуги.СтавкаНДС = СтрокаУслуги.Номенклатура.СтавкаНДС;
     СтрокаУслуги.СуммаНДС = УчетНДС.РассчитатьСуммуНДС(СтрокаУслуги.Сумма,
                                                           Объект.УчитыватьНДС, Объект.СуммаВключаетНДС,
                                                           УчетНДС.ПолучитьСтавкуНДС(СтрокаУслуги.СтавкаНДС));
   // СтрокаТовары.Качество = Справочники.Качество.новый;
 
   // СтрокаТовары.СчетУчетаБУ = ПланыСчетов.Хозрасчетный.ТоварыНаСкладе;
 


     СтрокаУслуги.СхемаРеализации = СхемыРеализацииУслуги;
    //СтрокаТовары.НалоговоеНазначение = Справочники.НалоговыеНазначенияАктивовИЗатрат.НДС_Облагаемая;
 
     СтрокаУслуги.НалоговоеНазначениеДоходовИЗатрат = Справочники.НалоговыеНазначенияАктивовИЗатрат.ХозДеятельность;
КонецЦикла;
 Объект.СуммаДокумента =  Объект.СуммаДокумента+лТЧПриемник.Итог("Сумма");
//Параметры.Установить("Контрагент",Объект.Контрагент);
 
// Параметры.Установить("НаименованиеДоговора","Автосалон");
////Параметры.Установить("Документ",Объект);
 
//Выполнить("Алгоритмы.СоздатьДоговор()"); 
 

 // СоздатьДоговор();
 

СпрДоговора = Справочники.ДоговорыКонтрагентов;
Контрагент = Объект.Контрагент;

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

    Попытка
        НовыйДоговор.Записать();

    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;    
        Договор = НовыйДоговор.Ссылка;    
Иначе
    Договор = НайденДоговор.Ссылка;
КонецЕсли;
  Объект.ДоговорКонтрагента = Договор;

  СчетаУчета = УправлениеВзаиморасчетами.ПолучитьСчетаРасчетовСКонтрагентом( Объект.Организация,  Объект.Контрагент,  Объект.ДоговорКонтрагента);
            
            Если  Объект.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером Тогда
                 Объект.СчетУчетаРасчетовСКонтрагентом = СчетаУчета.СчетРасчетовПокупателя;
                 Объект.СчетУчетаРасчетовПоАвансам     = СчетаУчета.СчетАвансовПокупателя;
            ИначеЕсли Объект.ДоговорКонтрагента.ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.Бартерный Тогда
                 Объект.СчетУчетаРасчетовСКонтрагентом = СчетаУчета.СчетРасчетовПокупателяПриБартере;
                 Объект.СчетУчетаРасчетовПоАвансам     = СчетаУчета.СчетАвансовПокупателяПриБартере;
            Иначе
                 Объект.СчетУчетаРасчетовСКонтрагентом = СчетаУчета.СчетРасчетовПокупателя;
                 Объект.СчетУчетаРасчетовПоАвансам     = СчетаУчета.СчетАвансовПокупателя;
            КонецЕсли;
            
             Объект.СчетУчетаРасчетовПоТаре          = СчетаУчета.СчетУчетаТарыПокупателя;
             Объект.СчетУчетаРасчетовПоТареПоАвансам = СчетаУчета.СчетАвансовПоТареПокупателя;
             Объект.СчетУчетаНДС                      = СчетаУчета.СчетУчетаНДСПродаж;
             Объект.СчетУчетаНДСПодтвержденный       = СчетаУчета.СчетУчетаНДСПродажПодтвержденный;
             

  
  Попытка
           Объект.Записать(РежимЗаписиДокумента.Проведение)
       Исключение
           Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения);        
       КонецПопытки;
   zladenuw
 
10 - 02.01.13 - 15:44
в источнике есть реквизит булевый физлицо. как при загрузке указать что бы заполнялся ЮрФизЛицо ?
пробовал в пкс Значение = ?(Источник.ЭтоФизЛицо,"ФизЛицо","ЮрЛицо");

НО не хочет. как правильно ?
 
 Рекламное место пустует
   fisher
 
11 - 02.01.13 - 16:00
(8) Т.е. этих ордеров в источнике нет, что ли? Зачем их в процессе импорта создавать?
Но ежели таки надо, то рисуется ПКО для ордера, где источником - реализация. Если хочешь, чтобы ордера выгружались всегда вместе с реализациями автоматом, то в ПКО реализаций прописываешь и выгрузку ордеров через "ВыгрузитьПоПравилу". В каком событии - не помню. В "После выгрузки", что ли...
(9) Это забивание гвоздей рукояткой пневмо-пистолета.
(10) Код похож на правильный. Где косяк - отсюда не видно. ПКО перечисления назначено? Это код из "Перед выгрузкой" ПКС "ЮрФизЛицо"?
   zladenuw
 
12 - 02.01.13 - 16:10
(11) с (10) затупил сам. все ок. после загрузки условие ставил.

(9) а как тогда надо ? пока нужного достиг так.

(8) сейчас люди закрывают наряд-заказ в 8. потом руцями набивают документ расход и на основание его делают пко в 1с7.
хочу что бы при нажатие кнопки создать в 8. все создалось :).
хотелку почти сделал. кроме пко
   zladenuw
 
13 - 02.01.13 - 16:13
(11) перенес в алгоритмы создание договора и счета учета. или это не вариант ?
   fisher
 
14 - 02.01.13 - 16:14
(13) Через ПКО это всё делается.
   zladenuw
 
15 - 02.01.13 - 16:18
(3,7) разобрался с родителем. спасибо. все как обычно просто.
   zladenuw
 
16 - 02.01.13 - 16:19
(15) так ведь правильно ?
Если Источник.Уровень()=0 Тогда
    Значение = "ГР0000254";
КонецЕсли;
   zladenuw
 
17 - 02.01.13 - 16:56
вот что осталось после загрузки.
как и это можно переместить в ПКС ?

Объект.Ответственный = глЗначениеПеременной("глТекущийПользователь");
Объект.Подразделение = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновноеПодразделение");
Объект.ТипЦен = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"), "ОсновнойТипЦенПродажи");

лТЧПриемник = Объект.Товары;
Для каждого СтрокаТовары из лТЧПриемник цикл
     СтрокаТовары.ЕдиницаИзмерения = СтрокаТовары.Номенклатура.ЕдиницаХраненияОстатков;
     СтрокаТовары.Сумма = СтрокаТовары.Цена*СтрокаТовары.Количество;
     СтрокаТовары.СтавкаНДС = СтрокаТовары.Номенклатура.СтавкаНДС;
     СтрокаТовары.СуммаНДС = УчетНДС.РассчитатьСуммуНДС(СтрокаТовары.Сумма,
                                                           Объект.УчитыватьНДС, Объект.СуммаВключаетНДС,
                                                           УчетНДС.ПолучитьСтавкуНДС(СтрокаТовары.СтавкаНДС));
 КонецЦикла;    
 

 Объект.СуммаДокумента = лТЧПриемник.Итог("Сумма");
 
 Параметры.Контрагент = Объект.Контрагент;
 Параметры.НаименованиеДоговора="Договор с покупателем Автосалон";
 Параметры.Объект = Объект;
 
 Выполнить(Алгоритмы.СоздатьДоговор); 
 Выполнить(Алгоритмы.СчетаУчета);
 
             
Попытка
   Объект.Записать(РежимЗаписиДокумента.Проведение)
Исключение
   Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения);        
КонецПопытки;
   PiotrLoginov
 
18 - 02.01.13 - 17:22
Насчет реквизитов шапки не скажу, но табличную часть(ЕдиницаИзмерения и протчее) однозначно можно заполнить создав соответствующие ПКС. И я бы не стал рассчитывать НДС функцией приемника.
   zladenuw
 
19 - 02.01.13 - 17:27
(18) спасибо
   Pasha
 
20 - 02.01.13 - 17:52
(0) Выгрузку остатков из Бух 7.7 в БП 2.0 посмотри... там есть как раз материалы и товары грузятся в справочник номенклатура в свои папки
   zladenuw
 
21 - 02.01.13 - 17:57
да уже разобрался. думаю 2-3 дня и приведу все в порядок.
Вопрос в другом. передавать через файл или по СОМ.
   PiotrLoginov
 
22 - 02.01.13 - 18:02
Через COM еще какое-то время будешь возиться с настройкой. Имхо, проще подождать пока файл сформируется.

Сам этой темой заморочен. Насчет (20) : где можно достать выгрузку остатков из типовой Бух 7.7 в типовую БП 2.0 ? Заранее премного благодарен за подсказку. К ИТС доступа не имею.
   zladenuw
 
23 - 02.01.13 - 18:05
(22) так руцями по кому бегают. кумарит что каждый раз подключение.
но решил проблему через 
    ТекCOMОбъект = ПолучитьИзВременногоХранилища(ПараметрыСеанса.АдресCOMОбъекта);
       //ТекCOMОбъект = ТекCOMПодключение.Connect(СтрокаПодключения);
 

Убивает то что документ передается за 1 секундку. а подключение идет до 10

Но. Нужно заполнить отборы. пока смотрю.


Список тем форума
Рекламное место пустует  Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует