Имя: Пароль:
1C
1С v8
Помогите организовать загрузку документов ПН из табл.части обработки
0 Бестия
 
10.01.12
21:32
Помогите плиз с организацией загрузки документов новичку в программировании 8.2. Написала обработку по загрузке дбф файла в табличную часть обработки, а теперь не могу организовать создание документов Поступление товаров и услуг ( 8.2утп) из табл части в документы.

В таб части след. поля
НомерДок / товар
Ном1       Товар1
Ном1       Товар2
Ном2       Товар1
Ном2       Товар2

В данном случае мне нужно загрузить два документа. Вот что пытаюсь сделать, но ничего не получается

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

КонецПроцедуры

&НаСервере
Функция СоздатьНовыйДокументНаСервере()
Перем НоваяПриходнаяНакладная;
Перем СтрокаТЧ;
//Д=Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();

ТЧОбработка= ОбработкаОбъект.Приход;
для каждого НовСтр из ОбработкаОбъект.Приход.Количество()   цикл
   НДок=Новстр.НомерДокумента;      
     
       НоваяПриходнаяНакладная=Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();
   
       //Заполняем реквизиты шапки
       НоваяПриходнаяНакладная.Дата=  ДатаПриХода;
       НоваяПриходнаяНакладная.Организация =Справочники.Организации.НайтиПоКоду(1);
       НоваяПриходнаяНакладная.Контрагент=ОбработкаОбъект.Поставщик;
       НоваяПриходнаяНакладная.Склад=ОбработкаОбъект.Склад;
       НоваяПриходнаяНакладная.НомерВходящегоДокумента=НовСтр.НомерДокумента;
       пока Ндок= НоваяПриходнаяНакладная.НомерВходящегоДокумента цикл
       //Заполняем табличную часть
       СтрокаТЧ=НоваяПриходнаяНакладная.ТЧТовары.Добавить();
       СтрокаТЧ.Товар=Новстр.НазваниеТовара;
           
       Попытка
               НоваяПриходнаяНакладная.Записать();
               Возврат 1;
       Исключение
               Возврат 0;
       КонецПопытки;
   конеццикла;
конеццикла

КонецФункции
1 vicof
 
10.01.12
21:37
1с молчит и ничего не говорит. Отладчик тоже. Да и телепаты от праздников не отошли.
2 zif
 
10.01.12
21:41
(0) А ты уверена, что не изобретаешь велосипед?
Конфа типовая 8.2? В них во многих есть загрузка в документы/справочники из Экселя
3 Бестия
 
10.01.12
21:43
(2) нужно немножко изобрести, т.к. файлы идут в дбф их много, никто в экселе не пришлет однозначно, а мои пользователи не в состоянии будут их переводить в другой формат вот и мучаюсь.
4 zif
 
10.01.12
21:45
А что конкретно в (0) не получается-то?
5 DrShad
 
10.01.12
21:46
и где фотка?
6 zif
 
10.01.12
21:49
пока Ндок=НоваяПриходнаяНакладная.НомерВходящегоДокумента цикл
       //Заполняем табличную часть

       СтрокаТЧ=НоваяПриходнаяНакладная.ТЧТовары.Добавить();
       СтрокаТЧ.Товар=Новстр.НазваниеТовара;
           
       Попытка
               НоваяПриходнаяНакладная.Записать();
               Возврат 1;
       Исключение
               Возврат 0;
       КонецПопытки;
   конеццикла;

энто ж бесконечный цикл
7 DrShad
 
10.01.12
21:51
(6) да не совсем
8 zif
 
10.01.12
21:51
тьфу, туплю, там возврат
но как-то алгоритм черз жпо построен...
9 DrShad
 
10.01.12
21:52
а вобще по коду из (0) тут фотка нужна как минимум топлесс
10 aleks-id
 
10.01.12
21:56
>>для каждого НовСтр из ОбработкаОбъект.Приход.Количество()
для каждого НовСтр из ОбработкаОбъект.Приход
11 zif
 
10.01.12
21:56
(0) все переписать

1. выгружаешь столбец номердок, сворачиваешь, получаешь список уникальных доков
2. для каждого уникального дока через ТЗ.НайтиСтроки() получаешь массивы егоной номенклатуры, заполняешь ими ТЧ
12 aleks-id
 
10.01.12
21:58
а вообще код в топку
13 zif
 
10.01.12
21:58
а вообще коллега из (9) безусловно прав
14 Бестия
 
11.01.12
10:25
(13) (9) ну... топлес не обещаю, а вообще можно что то придумать на счет фотки)))
15 Бестия
 
11.01.12
10:29
(12) содержательный ответ, прям оптимистический я бы сказала.
16 hhhh
 
11.01.12
10:32
(15) ну сама вчитайся в то, что ты наваяла:

...  из ОбработкаОбъект.Приход.Количество()

это разве не в топку?
17 Бестия
 
11.01.12
10:39
(16) тяжело пока привыкнуть к 8.2, написала по принципу 7.7., возможно и в топку, но я же прошу помощи. Поняла что нужно вот так ОбработкаОбъект.Приход
18 Бестия
 
11.01.12
13:21
&НаСервере
Функция СоздатьНовыйДокументНаСервере()
Перем НоваяПриходнаяНакладная;
Перем СтрокаТЧ;
ПрошлыйНомер = "";
ТекДок = "";
ТЧОбработка= ОбработкаОбъект.Приход;
для каждого НовСтр из ОбработкаОбъект.Приход   цикл
     НДок=Новстр.НомерДокумента;      
          если НДок <> ПрошлыйНомер Тогда
              Если ТекДок <> "" Тогда
                    НоваяПриходнаяНакладная.Записать();      
        Конецесли;                          
НоваяПриходнаяНакладная=Документы.ПоступлениеТоваровУслуг.СоздатьДокумент();      
           //Заполняем реквизиты шапки
           НоваяПриходнаяНакладная.Дата=  ДатаПриХода;
           НоваяПриходнаяНакладная.Организация =Справочники.Организации.НайтиПоКоду(1);
           НоваяПриходнаяНакладная.Контрагент=ОбработкаОбъект.Поставщик;
             НоваяПриходнаяНакладная.НомерВходящегоДокумента=НовСтр.НомерДокумента;
           Конецесли;          
           //Заполняем табличную часть            
                СтрокаТЧ=НоваяПриходнаяНакладная.Товары.Добавить();            
                СтрокаТЧ.Номенклатура=Новстр.НазваниеТовара;            
                СтрокаТЧ.Количество=Новстр.Количество;            
              //Попытка      
            //НоваяПриходнаяНакладная.Записать();
           //Возврат 1;
           //Исключение            
              //Возврат 0;
           //КонецПопытки;
           ПрошлыйНомер = НДок;
конецциклаКонецФункции
По моему зашла в тупик
19 Бестия
 
11.01.12
14:32
Тема закрыта, получилась красивая обработка по импорту документов из дбф, в документы "поступление товаров и услуг".