Имя: Пароль:
1C
1С v8
Ввод начальных остатков бух 3.0
,
0 roman844
 
27.12.16
21:43
Всем доброго вечера. Есть проблема, пытаюсь заполнить обработкой начальные остатки по 10 счету, в частности Данные по счет фактуре. Но вот реквизит табличной части Счет фактура не заполняется данными, хотя в реквизитах установлен нужный тип документа. КАК быть?
25 trooba
 
27.12.16
22:08
(20) Напиши сюда субконто субсчетов счета 10
26 roman844
 
27.12.16
22:08
(25) Склады, номенклатура
27 trooba
 
27.12.16
22:09
Можетэто не Российский план счетов
28 roman844
 
27.12.16
22:09
(27) самый Российский
29 trooba
 
27.12.16
22:09
(26) Тогда на 10 что задокумент регистратор?
30 trooba
 
27.12.16
22:11
Какой СФ и куда ты его решил поместить
31 roman844
 
27.12.16
22:11
(29)причем тут регистратор??? я же говорю не про записи по счету 10
32 h-sp
 
27.12.16
22:12
(28) ну 10 счет у него своя табчасть, какие-то там тмц, значит эти 2 табчасти у тебя должны быть жестко друг к другу привязаны, а ты не привязал.
33 roman844
 
27.12.16
22:12
(30) мне нужно отразить док ручного учета как счет фактура
34 roman844
 
27.12.16
22:13
(32) ну так а я про что. они и будут привязаны по документу ручного учета, котрый надо занести во вторую таб часть
35 roman844
 
27.12.16
22:14
//я выполняю код
ТЧСчФактуры = НачОстатки.ДанныеПоСФ;
                нСтрока = ТЧСчФактуры.Добавить();
                нСтрока.СчетФактура = ДокРасчетов.Ссылка; //ТУТ НЕ РАБОТАЕТ!!!!!!!!!!!
                нСтрока.ВидЦенности = Перечисления.ВидыЦенностей.Материалы;
                нСтрока.СпособУчетаНДС = ?(НДСВключатьВСтоимость,
                Перечисления.СпособыУчетаНДС.УчитываетсяВCтоимости,
                Перечисления.СпособыУчетаНДС.ПринимаетсяКВычету);
                нСтрока.СчетУчетаНДС = ПланыСчетов.Хозрасчетный.НДСпоПриобретеннымМПЗ;                                //19.03
                нСтрока.СтавкаНДС = Перечисления.СтавкиНДС.НДС18;
                нСтрока.Количество = мРезультат[0].Количество;
                нСтрока.СуммаБезНДС = мРезультат[0].Сумма;
36 roman844
 
27.12.16
22:14
все остальное заполняет, кроме
нСтрока.СчетФактура = ДокРасчетов.Ссылка;//ТУТ НЕ РАБОТАЕТ!!!!!!!!!!!
37 roman844
 
27.12.16
22:15
нСтрока.СчетФактура в отладке показывает что НЕОПРЕДЕЛЕНО. ПОЧЕМУУУУУУ?????
38 trooba
 
27.12.16
22:16
(34)ТС. Ввод нчальныых остатков в БП- это по сути операция. Операция- регистратор набора записей РегистрБухгалтерии.Хозрасчетный. Понимаешь куда клоню? Ввод остатков- не документ. Априори.
39 trooba
 
27.12.16
22:18
(37) Обложка для отображения набора записей из регистра. Андестенд?
40 roman844
 
27.12.16
22:19
(38) Понимаю. Но вопрос не про сам 10 счет, а про раздельный учет НДС. При заполнении нач остатков есть 2 таб части, в одной заполняется инфа по номенклатуре, вторая отражает счет фактуру, по которой было получено это ТМЦ. вот во вторйо табличной часте мне и надо заполнить счет фактуру. руками она заполняется. кодом нет. код выше выложен.
41 trooba
 
27.12.16
22:19
(38) Не проводной, как бы это помягче сформулировать....
42 roman844
 
27.12.16
22:20
(41) не понял, по подробнее можно?
43 h-sp
 
27.12.16
22:20
(36) попробуй вручную сначала эту ситуацию завести. Что получится.
44 roman844
 
27.12.16
22:22
(43) Если делаю РУКАМИ результат, получается тот который нужен.
45 trooba
 
27.12.16
22:23
(40) Брось весь свой код, так будет быстрее (42) Что значит, что значит, в документ в конфигураторе зайди и посмотри, куда он что пишет? Там стоит проведение- запретить. Программно попробуй для него сделать: Записать(РежимЗаписиДокумента.Проведение). Узнаешь много нового.
46 roman844
 
27.12.16
22:23
У меня такое ощущение, что реквизиту табличной части нужно установить определенный ТИП данных программно.
47 trooba
 
27.12.16
22:23
(44) Ничего в 8 такого из 7.7 не нужно. Полностью код твоей обработки брось
48 roman844
 
27.12.16
22:25
(47) держи


&НаСервереБезКонтекста
Функция НайтиДокументРасчетовПоВхДатеИВхНомеру(СтруктураПолей)
    
    ТекстЗапроса = "ВЫБРАТЬ
                   |    ЕСТЬNULL(ДокументРасчетовСКонтрагентом.Ссылка, НЕОПРЕДЕЛЕНО) КАК Ссылка
                   |ИЗ
                   |    Документ.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом
                   |ГДЕ
                   |    ДокументРасчетовСКонтрагентом.Организация = &Организация
                   |    И ДокументРасчетовСКонтрагентом.Контрагент = &Контрагент
                   |    И ДокументРасчетовСКонтрагентом.ДоговорКонтрагента = &ДоговорКонтрагента
                   |    И ДокументРасчетовСКонтрагентом.ДатаВходящегоДокумента = &ДатаВходящегоДокумента
                   |    И ДокументРасчетовСКонтрагентом.НомерВходящегоДокумента = &НомерВходящегоДокумента";
                  
    Запрос = Новый Запрос;
    Запрос.Текст = ТекстЗапроса;
    Запрос.УстановитьПараметр("Организация", СтруктураПолей.ОснОрганизация);
    Запрос.УстановитьПараметр("Контрагент", СтруктураПолей.Контрагент);
    Запрос.УстановитьПараметр("ДоговорКонтрагента", СтруктураПолей.Договор);
    Запрос.УстановитьПараметр("ДатаВходящегоДокумента", СтруктураПолей.ВхДата);
    Запрос.УстановитьПараметр("НомерВходящегоДокумента", СтруктураПолей.ВхНомер);
    
    Выборка = Запрос.Выполнить().Выбрать();
    Пока Выборка.Следующий() Цикл
        СсылкаНаДок =  Выборка.Ссылка;
    КонецЦикла;
    
    Возврат СсылкаНаДок;
КонецФункции


&НаСервере
Процедура СформироватьДокументыПартииНаСервере(АдресФайла, НомерНачальнойСтроки, ОснОрганизация, ДокНачальныхОстатков)
    // Вставить содержимое обработчика.
    
    ТД = Новый ТабличныйДокумент;
    ТД.Прочитать(АдресФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);
    
    Для нСтроки = НомерНачальнойСтроки По ТД.ВысотаТаблицы Цикл
        
        _нСтроки = СтрЗаменить(нСтроки, Символы.НПП, "");
        
        //ЧИТАЕМ ФАЙЛ
        ТекДок = ТД.ПолучитьОбласть("R" + _нСтроки + "C2").ТекущаяОбласть.Текст;                                             //ТекДок
        Налоги = ТД.ПолучитьОбласть("R" + _нСтроки + "C3").ТекущаяОбласть.Текст;                                             //Налоги
        ДатаСчФ = ТД.ПолучитьОбласть("R" + _нСтроки + "C4").ТекущаяОбласть.Текст;                                             //ДатаСчФ
        НомерСчФ = ТД.ПолучитьОбласть("R" + _нСтроки + "C5").ТекущаяОбласть.Текст;                                             //НомерСчФ
        ДатаНомерСчФ = ТД.ПолучитьОбласть("R" + _нСтроки + "C6").ТекущаяОбласть.Текст;                                         //ДатаНомерСчФ
        НДСВключатьВСтоимость = ?(ТД.ПолучитьОбласть("R" + _нСтроки + "C7").ТекущаяОбласть.Текст = "0", Ложь, Истина);         //НДСВключатьВСтоимость
        Контрагент = ТД.ПолучитьОбласть("R" + _нСтроки + "C8").ТекущаяОбласть.Текст;                                         //Контрагент
        Договор = ТД.ПолучитьОбласть("R" + _нСтроки + "C9").ТекущаяОбласть.Текст;                                             //Договор
        Склад = ТД.ПолучитьОбласть("R" + _нСтроки + "C10").ТекущаяОбласть.Текст;                                             //МестоХранения
        Материал = ТД.ПолучитьОбласть("R" + _нСтроки + "C11").ТекущаяОбласть.Текст;                                         //Материал
        Количество = ТД.ПолучитьОбласть("R" + _нСтроки + "C12").ТекущаяОбласть.Текст;                                        //Количество
        
        ДатаДокументаРасчетная = Дата(Число(Прав(ДатаСчФ,4)),Число(Сред(ДатаСчФ,4,2)),Число(Лев(ДатаСчФ,2)));
        
        //ПРОВЕРКА ДОКУМЕНТОВ ПО КОНТРАГЕНТУ, ДОГОВОРУ, ВХ.ДАТЕ, ВХ.НОМЕРУ
        //--------------ТУТ---------------
        
        //Описание структуры полей
        СтруктураПолей = Новый Структура("ОснОрганизация, Контрагент, Договор, ВхДата, ВхНомер");
        СтруктураПолей.ОснОрганизация = ОснОрганизация;
        СтруктураПолей.Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(Контрагент);
        СтруктураПолей.Договор = Справочники.ДоговорыКонтрагентов.НайтиПоНаименованию(Договор, Истина,, СтруктураПолей.Контрагент);
        СтруктураПолей.ВхДата = ДатаДокументаРасчетная;
        СтруктураПолей.ВхНомер = СокрЛП(НомерСчФ);
        //
        
        Если Не ЗначениеЗаполнено(СтруктураПолей.Контрагент)
            Или НЕ ЗначениеЗаполнено(СтруктураПолей.Договор)
            Тогда
            Сообщить("Не заполнен контрагент или договор. Документ в 7.7 " + ТекДок);
            Продолжить;
        КонецЕсли;
        
        ДокРасчетовСсылка = НайтиДокументРасчетовПоВхДатеИВхНомеру(СтруктураПолей);
        
        Если ДокРасчетовСсылка = Неопределено Тогда
            
            НачатьТранзакцию();            //***************************************
            
            //СОЗДАТЬ ДОКУМЕНТ РАСЧЕТОВ С КОНТРАГЕНТАМИ
            ДокРасчетов = Документы.ДокументРасчетовСКонтрагентом.СоздатьДокумент();
            ДокРасчетов.Организация = ОснОрганизация;
            ДокРасчетов.ДатаВходящегоДокумента = ДатаДокументаРасчетная;
            ДокРасчетов.НомерВходящегоДокумента = НомерСчФ;
            ДокРасчетов.Дата = ДатаДокументаРасчетная;
            ДокРасчетов.Контрагент = СтруктураПолей.Контрагент;
            ДокРасчетов.ДоговорКонтрагента = СтруктураПолей.Договор;
            ДокРасчетов.Комментарий = "Перенесено из 1С 7.7 " + ДатаНомерСчФ;
            Попытка;
                ДокРасчетов.Записать(РежимЗаписиДокумента.Запись);
                Сообщить("Записан : " + ДокРасчетов.Ссылка);
            Исключение;
                Сообщить("При записи документа произошла обшибка записи. Документ в 7.7." + ТекДок);
                ОтменитьТранзакцию();            //***************************************
                Продолжить;
            КонецПопытки;
            ЗафиксироватьТранзакцию();            //***************************************
        Иначе
            ДокРасчетов = ДокРасчетовСсылка.ПолучитьОбъект();
        КонецЕсли;
        
        //УСТАНОВИТЬ ССЫЛКУ НА ДОКУМЕНТ-ПАРТИЮ ДОКУМЕНТ РАСЧЕТОВ С КОНТРАГЕНТАМИ
        НачОстатки = ДокНачальныхОстатков.ПолучитьОбъект();
        ТЧМатериалы = НачОстатки.НоменклатураНаСкладе;
        
        //ПОИСК ПО ТЧ
        ОТБОР = Новый Структура("Партия, Склад, Номенклатура");
        //ОТБОР.Партия = Документы.ДокументРасчетовСКонтрагентом.ПустаяСсылка();
        ОТБОР.Склад = Справочники.Склады.НайтиПоНаименованию(Склад);
        ОТБОР.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Материал);
        
        мРезультат = ТЧМатериалы.НайтиСтроки(ОТБОР);
        Если мРезультат <> Неопределено Тогда
            мРезультат[0].Партия = ДокРасчетов;
        Иначе
            Продолжить;
        КонецЕсли;
        
        
        Сообщить("Налоги : " + Налоги);
        Если СокрЛП(Налоги) = "НДС сверху 18%" Тогда
            Если НДСВключатьВСтоимость Тогда     
                
                СчФОписаниеТипов = Новый ОписаниеТипов("ДокументСсылка.ДокументРасчетовСКонтрагентом");
                //ЭлементыФормы.ДанныеПоСФ.СчетФактура.ОграничениеТипа = СчФОписаниеТипов;
                //ЭлементыФормы.ДанныеПоСФ.СчетФактура.Значение = СчФОписаниеТипов.ПривестиЗначение();
                //ЭлементыФормы.ДанныеПоСФ.СчетФактура.ВыбиратьТип = Ложь;
                
                //ДОБАВИТЬ ЗАПИСЬ
                ТЧСчФактуры = НачОстатки.ДанныеПоСФ;
                нСтрока = ТЧСчФактуры.Добавить();
                нСтрока.СчетФактура = ДокРасчетов.Ссылка;
                нСтрока.ВидЦенности = Перечисления.ВидыЦенностей.Материалы;
                нСтрока.СпособУчетаНДС = ?(НДСВключатьВСтоимость,
                Перечисления.СпособыУчетаНДС.УчитываетсяВCтоимости,
                Перечисления.СпособыУчетаНДС.ПринимаетсяКВычету);
                нСтрока.СчетУчетаНДС = ПланыСчетов.Хозрасчетный.НДСпоПриобретеннымМПЗ;                                //19.03
                нСтрока.СтавкаНДС = Перечисления.СтавкиНДС.НДС18;
                нСтрока.Количество = мРезультат[0].Количество;
                нСтрока.СуммаБезНДС = мРезультат[0].Сумма;
                
            КонецЕсли;
        КонецЕсли;
        
        НачОстатки.Записать(РежимЗаписиДокумента.Запись);
        
    КонецЦикла;
    ВсегоЗаписей = нСтроки - НомерНачальнойСтроки;
    Сообщить("Обработано всего: " + ВсегоЗаписей + " записей");
    
КонецПроцедуры

&НаКлиенте
Процедура СформироватьДокументыПартии(Команда)
    Если ПерваяСтрокаФайлаЗаголовокТаблицы Тогда
        НомерНачальнойСтроки = 2;
    Иначе
        НомерНачальнойСтроки = 1;
    КонецЕсли;
    
    СформироватьДокументыПартииНаСервере(АдресФайла, НомерНачальнойСтроки, ОснОрганизация, ДокНачальныхОстатков);
КонецПроцедуры

&НаКлиенте
Процедура АдресФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    // Вставить содержимое обработчика.
    
    ДиалогВыбора = Новый  ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогВыбора.МножественныйВыбор = Ложь;
    ДиалогВыбора.ПолноеИмяФайла = "";
    Фильтр = НСтр("ru = 'Табличный документ'; en = 'Table document'")
    + "(*.mxl)|*.mxl";
    ДиалогВыбора.Фильтр = Фильтр;
    ДиалогВыбора.Заголовок = "Укажите файл";
    
    Если ДиалогВыбора.Выбрать() Тогда
        АдресФайла = ДиалогВыбора.ВыбранныеФайлы[0];
    Иначе
        Возврат;
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    // Вставить содержимое обработчика.
    ПерваяСтрокаФайлаЗаголовокТаблицы = Истина;
КонецПроцедуры
49 zak555
 
27.12.16
22:26
(38) > Ввод остатков- не документ

куришь ?
50 roman844
 
27.12.16
22:27
(49) не курю
51 roman844
 
27.12.16
22:27
Ребят, может кто натолкнуть на идею???
52 roman844
 
27.12.16
22:30
Как установить программно тип на реквизит ТЧ на форме???
53 roman844
 
27.12.16
22:32
написал вот это
СчФОписаниеТипов = Новый ОписаниеТипов("ДокументСсылка.ДокументРасчетовСКонтрагентом");
                ЭлементыФормы.ДанныеПоСФ.СчетФактура.ОграничениеТипа = СчФОписаниеТипов;
                ЭлементыФормы.ДанныеПоСФ.СчетФактура.Значение = СчФОписаниеТипов.ПривестиЗначение();
                ЭлементыФормы.ДанныеПоСФ.СчетФактура.ВыбиратьТип = Ложь;

Не знаю как обратиться с сервера к элементам формы. есть идеи???
54 zak555
 
27.12.16
22:35
Тип(ДокРасчетов) ???
55 roman844
 
27.12.16
22:36
(54)ДокументСсылка.ДокументРасчетовСКонтрагентом
56 trooba
 
27.12.16
22:36
(49) Да, "операция" в 7.7 и "ОперацияБух" в 8 тоже "Документ". А теперь по делу:

ДокРасчетов = Документы.ДокументРасчетовСКонтрагентом.СоздатьДокумент();
            ДокРасчетов.Организация = ОснОрганизация;
            ДокРасчетов.ДатаВходящегоДокумента = ДатаДокументаРасчетная;
            ДокРасчетов.НомерВходящегоДокумента = НомерСчФ;
            ДокРасчетов.Дата = ДатаДокументаРасчетная;
            ДокРасчетов.Контрагент = СтруктураПолей.Контрагент;
            ДокРасчетов.ДоговорКонтрагента = СтруктураПолей.Договор;
            ДокРасчетов.Комментарий = "Перенесено из 1С 7.7 " + ДатаНомерСчФ;
            Попытка;
                ДокРасчетов.Записать(РежимЗаписиДокумента.Запись);
                Сообщить("Записан : " + ДокРасчетов.Ссылка);
            Исключение;
                Сообщить("При записи документа произошла обшибка записи. Документ в 7.7." + ТекДок);
                ОтменитьТранзакцию();            //***************************************

                Продолжить;
            КонецПопытки;
            ЗафиксироватьТранзакцию();            //***************************************

        Иначе
            ДокРасчетов = ДокРасчетовСсылка.ПолучитьОбъект();
        КонецЕсли;
        

Далее, Рег=РегистрБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
57 roman844
 
27.12.16
22:39
(56) мои данные не далют проводки по бух регистру
58 trooba
 
27.12.16
22:40
В бух 3.0?
59 ВРедная
 
27.12.16
22:41
(56) че ты там куришь?
https://yadi.sk/i/bISNl-X135P82V
60 zak555
 
27.12.16
22:41
(56) причём иуи документ Операция и документ ВВод остатков ?
61 zak555
 
27.12.16
22:41
(55) нет такого типа для этого реквизита, нужно ввести сф
62 roman844
 
27.12.16
22:41
(58) в бух 30 таб часть по ТМЦ делает проводки в регистр бухгалтерии. Данные по сч фаткурам не делает
63 roman844
 
27.12.16
22:43
(61) открой таб часть ДанныеПоСФ в конфигураторе там есть реквизит СЧЕТФАКТУРА - имеет составной тип один из котрых - ДокументСсылка.ДокументРасчетовСКонтрагентом
64 trooba
 
27.12.16
22:43
(59)  Привести пример заполнения остатков ? Блин,
65 trooba
 
27.12.16
22:44
(63) Есть,
66 zak555
 
27.12.16
22:45
(63) есть оказывается
странно
67 roman844
 
27.12.16
22:45
(65) ну и???!!! Я знаю что есть. Толкьо как программно в него записать?? по идее должен давать запись
68 zak555
 
27.12.16
22:46
(67) функциональная опция включена ?
69 trooba
 
27.12.16
22:47
(67) Перенос через Ком из 7.7 операции в операцию:

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

    Док.Записать();
    
    Регистр = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();    
    Регистр.Отбор.Регистратор.Значение = Док.Ссылка;    
    
    ТекКомДок=База77.CreateObject("Документ."+Строка(КомДок.Вид()));
    
    ТекКомДок.НайтиДокумент(КомДок.ТекущийДокумент());
        
    Оп=ТекКомДок.Операция;
    
    Док.Содержание=Оп.Содержание;
    Док.Комментарий=ТекКомДок.Комментарий;
    
    Оп.ВыбратьПроводки();
        
    Пока Оп.ПолучитьПроводку()=1 Цикл
        
        Дт=Оп.Дебет.Счет.Код;
        Кт=Оп.Кредит.Счет.Код;
        
        КомСчетДт=База77.CreateObject("Счет");
        КомСчетДт.НайтиПоКоду(Дт);
        
        КомСчетКт=База77.CreateObject("Счет");
        КомСчетКт.НайтиПоКоду(Кт);
        
        КомПодразделениеКод=СокрЛП(Оп.Подразделение.Код);
        
        Подразделение=Справочники.ПодразделенияОрганизаций.НайтиПоКоду(Оп.РазделительУчета.Код);
        
        Проводка=Регистр.Добавить();
        
        Проводка.Содержание=Оп.СодержаниеПроводки;
        
        //СчетДт
        Структура=Новый Структура;
        Структура.Вставить("Счет77",Дт);
        
        Массив=Объект.ТЧ_Счета.НайтиСтроки(Структура);
        
        Если  Массив.ВГраница()>-1 Тогда
        
            СчетДт=Массив[0].Счет8;
            
            Иначе
            
            СчетДт=ПланыСчетов.Хозрасчетный.ПустаяСсылка();
            
        КонецЕсли;
        
        Если СчетДт<>ПланыСчетов.Хозрасчетный.ПустаяСсылка() Тогда
            
            Если КомСчетДт.КоличествоСубконто()>0 Тогда
                
                Для Индекс=1 по КомСчетДт.КоличествоСубконто() Цикл
                                    
                Структура=ОбработатьСубконто(База77.ЗначениеВСтроку(Оп.Дебет.Субконто(Индекс)),Оп.Дебет.Субконто(Индекс),СчетДТ);    
                
                Проводка.СчетДт=СчетДт;
                Проводка.Организация=Объект.Организация;
                Проводка.Период=ТекКомДок.ДатаДок;
                        
                БухгалтерскийУчет.УстановитьСубконто(СчетДт, Проводка.СубконтоДт, Структура.НаименованиеПВХ, Структура.Элемент);
                
                Если СчетДт.УчетПоПодразделениям Тогда
                
                    Проводка.ПодразделениеДт=Подразделение;
                
                КонецЕсли;
                
                Если СчетДт.Количественный Тогда
                        
                    Проводка.КоличествоДт=Оп.Количество;
                        
                КонецЕсли;
                    
                Если СчетДт.НалоговыйУчет Тогда
                    
                    Проводка.СуммаНУДт=Оп.Сумма;
                    
                КонецЕсли;    
                
            КонецЦикла;
            
        Иначе
            
            Проводка.СчетДт=СчетДт;
            Проводка.Организация=Объект.Организация;
            Проводка.Период=ТекКомДок.ДатаДок;

            Если СчетДт.УчетПоПодразделениям Тогда
                
                Проводка.ПодразделениеДт=Подразделение;
                
            КонецЕсли;
            
            Если СчетДт.Количественный Тогда
                
                Проводка.КоличествоДт=Оп.Количество;
                
            КонецЕсли;
            
            Если СчетДт.НалоговыйУчет Тогда
                
                Проводка.СуммаНУДт=Оп.Сумма;
                
            КонецЕсли;    
            
        КонецЕсли;
            
        КонецЕсли;
        
        //СчетКт
        Структура=Новый Структура;
        Структура.Вставить("Счет77",Кт);
        
        Массив=Объект.ТЧ_Счета.НайтиСтроки(Структура);
        
        Если  Массив.ВГраница()>-1 Тогда
        
            СчетКт=Массив[0].Счет8;
            
            Иначе
            
            СчетКт=ПланыСчетов.Хозрасчетный.ПустаяСсылка();
            
        КонецЕсли;    

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

    Регистр.Записать(Истина);
    
    Док.СуммаОперации=Регистр.Итог("Сумма");
    
    Док.ОбменДанными.Загрузка=Истина;    
    Док.ПометкаУдаления=Ложь;
    Док.Записать(РежимЗаписиДокумента.Запись);
        
    Рег=РегистрыСведений.ДополнительныеСведения.СоздатьНаборЗаписей();
    Рег.Отбор.Объект.Использование=Истина;
    Рег.Отбор.Объект.Установить(Док.Ссылка);
    
    Рег.Отбор.Свойство.Использование=Истина;
    Рег.Отбор.Свойство.Установить(ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Номер из Бухгалтерии 7.7"));
    
    Рег.Прочитать();
    
    Если Рег.Количество()>0 Тогда
        
        Для Индекс=0 По Рег.Количество()-1 Цикл
            
            //Если Рег[Индекс].Свойство.Заголовок="Номер из Бухгалтерии 7.7" Тогда
                
                Рег[Индекс].Значение=СокрЛП(КомДок.НомерДок);
                
                //прервать;
                
            //КонецЕсли;    
            
        КонецЦикла;
        
    Иначе
        
        Запись=Рег.Добавить();
        Запись.Объект=Док.Ссылка;
        Запись.Свойство=ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Номер из Бухгалтерии 7.7");
        Запись.Значение=СокрЛП(КомДок.НомерДок);
        
    КонецЕсли;    
    
    Рег.Записать(Истина);
    
    Док.ОбменДанными.Загрузка=Ложь;    
    
            
    Док.Записать(РежимЗаписиДокумента.Запись);
            
КонецПроцедуры
70 roman844
 
27.12.16
22:47
если открыть ввод начальных остатков форма "ФормаНоменклатура", то там при ручном вводе есть Процедура ДанныеПоСФНоменклатураНаСкладеСчетФактураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка), как раз она открывает форму диалога для выбора документа ручного ввода - либо для формирования нового, либо для выбора из уже имеющихся
71 DailyLookingOnA Sunse
 
27.12.16
22:48
Он смотрит что-то не то на форме.
(53)
В УФ нет таких ЭлементыФормы, есть Элементы.
ДанныеПоСФ тоже нет такого элемента.
А при создании дока всё правильно.
72 roman844
 
27.12.16
22:49
(71) ДанныеПоСФ - это таб часть док-та ввод начальных остатков
73 roman844
 
27.12.16
22:50
ВОПРОС: как из процедуры НаСервере обратиться к реквизиту таб части и установить нужный тип данных???
74 DailyLookingOnA Sunse
 
27.12.16
22:51
(72)
Еще раз: в БП 3.0 не такого ЭлементыФормы.ДанныхПоФС в документ ввода остатков.
75 roman844
 
27.12.16
22:51
Даже не к реквизиту таб части, а к определнному полю таб части расположенной на форме????
76 DailyLookingOnA Sunse
 
27.12.16
22:52
"нет" такого
в "документе"
P.S.
Спать пора.
77 roman844
 
27.12.16
22:52
(74) нету, я согласен, а что тогда есть?
78 roman844
 
27.12.16
22:52
(76) вопрос (73) и (75)???
79 trooba
 
27.12.16
22:53
(77) Запись в регистр напрямую. Сколько можно тупитьто?
80 ВРедная
 
27.12.16
22:53
(78) У тебя поле "ключ" в табличной части счетов-фактур заполняется?
81 ВРедная
 
27.12.16
22:54
+(80)
как определяешь, что твой код не работает?
Возьми консоль запросов и выведи в ней таблицу ДанныеПоСФ твоего документа
82 trooba
 
27.12.16
22:54
Нет там табличных частей,бЛЕАд. Там записи в регистрах отображаются. Включи мозг.
83 DailyLookingOnA Sunse
 
27.12.16
22:54
(78)
Это не надо никому, потому и ответов нет.
Создал док - открыл его.

Для обращения к табличной части в форме есть БСП и внешние обработки заполнения объекта.
84 ВРедная
 
27.12.16
22:55
(75) Тебе это не нужно
85 DailyLookingOnA Sunse
 
27.12.16
22:55
(80)
Про ключ и НомерСтроки хотел написать, но автор не дорос еще.
86 ВРедная
 
27.12.16
22:55
(82) это ты включи БП 3.0 и мозг. Есть в ней табличные части
87 ВРедная
 
27.12.16
22:56
(85) а как же он без ключа то? Он там небось себе уже миллион строк сгенерил и записал пока мы тут трепемся.
88 trooba
 
27.12.16
22:57
(86) Да, там естьтаблицы. Согласен, и отображают данные. Откуда?
89 roman844
 
27.12.16
22:57
(80) не заполняется ключ. Как его заполнить?
90 ВРедная
 
27.12.16
22:58
(89) ключом из таблицы номенклатуры
91 DailyLookingOnA Sunse
 
27.12.16
22:58
Элементы.ДанныеПоСФНоменклатураНаСкладе.ТекущиеДанные
92 h-sp
 
27.12.16
22:58
(75) Семен Семеныч. Что же ты туда ДокументОбъект пихаешь. Когда  ссылку надо.

    ДокРасчетов = ДокРасчетовСсылка.ПолучитьОбъект();

вот это нереальный бред. Пиши сразу по собственному.
93 trooba
 
27.12.16
22:59
(86) (86) Сколько там табличных частей?
94 ВРедная
 
27.12.16
23:00
(93) 25
95 trooba
 
27.12.16
23:05
(94) Был не прав
96 roman844
 
27.12.16
23:05
(91) после заполнения ключа будет возможность сч фактуру заполнить?
97 ВРедная
 
27.12.16
23:06
(96) ответь на (81)
98 h-sp
 
27.12.16
23:11
(96) вот это что за фигня?

           мРезультат[0].Партия = ДокРасчетов;
99 roman844
 
27.12.16
23:21
(98) привязка партии. Почему фигня?
100 roman844
 
27.12.16
23:22
(97) вы можете направить или натолкнуть на мысль?
101 roman844
 
27.12.16
23:23
(97) в отладке видно что реквизит неопределен.
102 ВРедная
 
27.12.16
23:33
(101)

Вот после этой строки

нСтрока.СчетФактура = ДокРасчетов.Ссылка

в отладчике поле нСтрока.СчетФактура - не заполнено?



Значит останавливайся отладчиком на этой строке

и показывай ТипЗнч(ДокРасчетов.Ссылка)
103 roman844
 
27.12.16
23:35
(101) тип ссылка на документ расчётов с контрагентами
104 roman844
 
27.12.16
23:38
(102) а вот настройка.СчетФактура тип НЕОПРЕДЕЛЕНО. Вот мне и не понятно почему. В реквизиты так части типы все выставлены, а когда присваивает значение то НЕОПРЕДЕЛЕНО.
105 ВРедная
 
27.12.16
23:39
(104) ты не на том концентрируешься. Она неопределно - потому что пустая.
Покажи еще раз всю свою простыню.
106 roman844
 
27.12.16
23:41
Я уже ушёл с работы.
107 roman844
 
27.12.16
23:41
На чем сконйетрироваться тогда?
108 ВРедная
 
27.12.16
23:42
на том, чтобы в отладчике после присвоения значения в реквизит строки ТЧ это значение туда твердо встало.
109 roman844
 
27.12.16
23:42
Я когда присваивает значение, она все равно пустая, при этом запись документа не проходит, так как реквизит пустой.
110 roman844
 
27.12.16
23:44
(108) в том то и дело, что тип НЕОПРЕДЕЛЕНО, а в значениях пусто. Хотя присваивает то значение которое нужно.
111 ВРедная
 
27.12.16
23:45
(108) Вот это тебе и нужно исправить. Должна быть не пустая.
И от типа значения на форме данные объекта не зависят
112 roman844
 
27.12.16
23:45
Ладно, приятных снов всем. Завтра выложу код, приходите помогать.
113 roman844
 
27.12.16
23:45
А что исправить
114 ВРедная
 
27.12.16
23:47
Лезь в отладчик и ползи по нему.
Конструкция твоя вот эта:
нСтрока.СчетФактура = ДокРасчетов.Ссылка

должна привести к тому, что в нСтрока.СчетФактура будет ссылка на док расчетов.
115 ВРедная
 
27.12.16
23:48
В твоей обработке, случайно, нет таблицы ТЧСчФактуры?
116 roman844
 
27.12.16
23:53
Неет
117 roman844
 
27.12.16
23:56
Всем спс. До завтра
118 minele
 
28.12.16
01:53
Попробуй как вариант не использовать объект: Перечисление
119 roman844
 
28.12.16
06:17
Доброе утро. Вопрос снова актуален.
120 roman844
 
28.12.16
06:18
(118) где ив каком месте не использовать перечисление и почему?
121 roman844
 
28.12.16
06:19
Проверяю вариант с ключом. По результатам отпишусь.
122 h-sp
 
28.12.16
06:41
(99)  мРезультат[0].Партия = ДокРасчетов.Ссылка;    !!!
123 roman844
 
28.12.16
09:10
Сделал
124 roman844
 
28.12.16
09:11
(122) вы правы, присваивает объект, исправил на ссылку и заполнил ключ во второй так части. Всем спасибо за помощь.
Закон Брукера: Даже маленькая практика стоит большой теории.