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