Имя: Пароль:
1C
1С v8
Заполнение ТЧ документа
0 Tumakota
 
21.11.12
12:49
Функция СоздатьНовыйДокумент(ТипСклада = Неопределено, Знач Склад = Неопределено, Знач ФормаОплаты = Неопределено, Знач БанковскийСчет = Неопределено, Знач Организация = Неопределено, Знач Контрагент = Неопределено)  Экспорт
  НовыйДокумент = Документы.ПоступлениеТоваров.СоздатьДокумент();
  НовыйДокумент.УчитыватьНДС = истина;
  НовыйДокумент.ЦенаВключаетНДС = истина;
  НовыйДокумент.Дата = ТекущаяДата();
  НовыйДокумент.Контрагент = Объект.Контрагент;
  НовыйДокумент.Организация = Объект.Организация;
  НовыйДокумент.Магазин    = Объект.Магазин;
  НовыйДокумент.Склад = Справочники.Склады.ПолучитьСкладПоступленияПоУмолчанию(Объект.Магазин,);
  НовыйДокумент.БанковскийСчетОрганизации =  Справочники.БанковскиеСчетаОрганизаций.БанковскийСчетОрганизацииПоУмолчанию(Объект.Организация);
  НовыйДокумент.БанковскийСчетКонтрагента =  Справочники.БанковскиеСчетаКонтрагентов.ПолучитьБанковскийСчетПоУмолчанию(Объект.Контрагент);
  НовыйДокумент.Ответственный = ПараметрыСеанса.ТекущийПользователь;
 

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

          Штрих = СтрокаТаб.Штрихкод;
          Штрихкод = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
          НовыйШтрихкод = Штрихкод.Добавить();
          НовыйШтрихкод.Владелец = Номенклатура.Ссылка;
          НовыйШтрихкод.ТипШтрихкода = ПредопределенноеЗначение("ПланВидовХарактеристик.ТипыШтрихкодов.EAN13");
          НовыйШтрихкод.Характеристика = Характеристика.Ссылка;
          НовыйШтрихкод.Штрихкод = Штрих;
          Штрихкод.Записать();

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

         
      КонецЕсли;
  КонецЦикла;
  НовыйДокумент.Записать();
  Возврат НовыйДокумент.Ссылка;
КонецФункции


Вот код заполнения документа Поступление, все заполняется нормально но при проведение документа, пишет что не заполнено количество товара, хотя количество товара заполнено.
1 zak555
 
21.11.12
12:51
этот код где размещён ?
2 Tumakota
 
21.11.12
12:52
НаСервере
3 Шапокляк
 
21.11.12
12:54
СтрокаТовара.Номенклатура = Номенклатура.Ссылка;
          СтрокаТовара.Характеристика = Характеристика.Ссылка;
          СтрокаТовара.КоличествоУпаковок = СтрокаТаб.Количество;
          СтрокаТовара.КоличествоУпаковок = ОбработкаТабличнойЧастиТоварыСервер.ПересчитатьКоличествоУпаковокВСтрокеТЧСервер(СтрокаТаб.Количество);
          СтрокаТовара.ор_ЦенаПроизводителя = СтрокаТаб.ЦенаПро;
          СтрокаТовара.Сумма = СтрокаТаб.ИтогоНДС;
          СтрокаТовара.СтавкаНДС = ОбработкаТабличнойЧастиТоварыСервер.ЗаполнитьСтавкуНДСВСтрокеТЧСервер(СтрокаТаб.Ставка);;
          СтрокаТовара.Цена = СтрокаТаб.ЦенаПри;
          СтрокаТовара.СуммаНДС = СтрокаТаб.СуммаНДС;

а где тут СтрокаТовара.Количество=....?
4 patapum
 
21.11.12
12:54
(0) если пишет, что не заполнено количество - значит оно не заполнено. а если тебе кажется, что заполнено - наверное, ты не туда смотришь. посмотри, какие реквизиты есть в тч, например Количество и КоличествоУпаковок
5 zak555
 
21.11.12
12:54
Объект -- ?
6 del123
 
21.11.12
12:55
а где выставляется количество? Вижу только два раза количествоУпаковок
7 Tumakota
 
21.11.12
12:56
Розница Аптека 2.0, в тч, количество упаковок, стоит и поэтому в коде написано количество упаковок, и если его перезаполнить то все нормально и в коде встает количество, нормально но пишет что оно не заполнено
8 Шапокляк
 
21.11.12
12:59
(7) В конфигураторе смотрел? Есть в ТЧ поле Количество?
Что значит в коде встает количество вообще не понятно.
9 Tumakota
 
21.11.12
13:03
В ТЧ есть КоличествоУпаковок, поэтому в коде и прописано чтобы в количествоупаковок вставало, и когда создается документ колонка Количество заполняется, но при проведение пишет что она не заполнена
10 hhhh
 
21.11.12
13:07
(9) а зачем вообще 2 раза присваиваете это количество?
11 Tumakota
 
21.11.12
13:11
(10) Вопрос не в том зачем несколько раз выводить вопрос в том почему он якобы не видит количество
12 Шапокляк
 
21.11.12
13:14
(9) Отладчиком посмотрите, есть там количество или нет. А вообще даже слепому очевидно, что вы его просто-напросто не присваиваете.
13 Tumakota
 
21.11.12
13:16
(12) Скажи мне как я его не присваиваю если отладчиком он туда встает, и в документе он встает но при проведение пишет что нет количества
14 Шапокляк
 
21.11.12
13:20
(13) Картинку из отладчика покажи
15 НЕА123
 
21.11.12
13:21
(13)
ТС упрямый.
16 Tumakota
 
21.11.12
13:29
17 Tumakota
 
21.11.12
13:29
Это ссылка созданного только что поступления и попыткой его провести
18 Шапокляк
 
21.11.12
13:40
(16) Хорошо, не хочешь давать картинку из отладчика (где видно содержимое колонок строки) - открой в обычном приложении и в групповой обработке посмотри все колонки документа. Откуда нам-то знать что там в колонке с названием количество на самом деле показывается?
19 Tumakota
 
21.11.12
13:48
(18) Ну я просто так думаю логично что если колонку количество перезаполнить то все норм
20 Tumakota
 
21.11.12
13:49
+(19) Значит выгружаю в ту колонку которую надо
21 НЕА123
 
21.11.12
13:49
(18)
КоличествоУпаковок
22 НЕА123
 
21.11.12
13:50
правда в (12)
23 Шапокляк
 
21.11.12
13:51
(19) Посмотри обработчик, который вызывается при ИНТЕРАКТИВНОМ перезаполнении этой колонки. Возможно, как раз настоящий реквизит Количество при этом и перезаполняется.
24 Aprobator
 
21.11.12
13:54
ТС видимо считает, что если на форме написано количество и там что то стоит, то это стопудово реквизит количество.
25 Шапокляк
 
21.11.12
13:58
Ждем новых открытий - там, похоже, половина колонок не заполняется.
Основная теорема систематики: Новые системы плодят новые проблемы.