Имя: Пароль:
1C
1C 7.7
v7: ТЗ изменить параметр колонки
0 St17
 
15.11.11
13:51
Доброе время суток!
Выгружаю из дока в ТЗ.
Колонка количество не может быть отрицательным т.к в доке установлен флажок не отрицательно!
А мне нужно добавлять значение отрицательное.
Зачем?
Есть док "Реализация" выгружаю в ТЗ добовляю строчки из докмента "Возврата" и сворачиваю. В результате получу тз с вычетом документа возврата!
УстановитьПараметрыКолонки(<Колонка>,<Тип>,<Длина>,<Точность>,<Заголовок>,<Ширина>,<Формат>,<Положение>)
Какой из этих параметров отвечает за отрицательность?
Спасибо за внимание!
1 filh
 
15.11.11
13:53
добавь, я не возражаю
2 andrewks
 
15.11.11
13:54
никакой
3 St17
 
15.11.11
13:58
(1) а по сути как такое заделать?
4 filh
 
15.11.11
13:59
(3) присмой отрицательное значение в ТЗ.
В чем проблема то?
5 povar
 
15.11.11
13:59
(3) убрать флажок ?
6 andrewks
 
15.11.11
13:59
(5) какой?
7 filh
 
15.11.11
14:00
(6) наверно этот:
>>Колонка количество не может быть отрицательным т.к в доке установлен флажок не отрицательно!
8 povar
 
15.11.11
14:01
(6) "в доке установлен флажок не отрицательно!"
Хотя я проблему так и не понял )
9 andrewks
 
15.11.11
14:01
(7) чё-то я запутался совсем. мы речь за ТЗ, или ТЧ дока ведём?
10 povar
 
15.11.11
14:02
(9) " в доке установлен флажок не отрицательно!
А мне нужно добавлять значение отрицательное"
11 1Сергей
 
15.11.11
14:03
Каким йобразом выгружаешь в ТЗ?
12 andrewks
 
15.11.11
14:03
*пой чую, щас речь плавно скатится к корректировочным счетам-фаткруам
13 andrewks
 
15.11.11
14:03
*счетам-фактурам
14 filh
 
15.11.11
14:03
(9) +много...
15 catena
 
15.11.11
14:04
(10)Но ведь "Выгружаю из дока в ТЗ. "
16 St17
 
15.11.11
14:04
Докум.ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаОснования);
Если занести новую строку с отрицательным значение то в ТЗ "ТаблицаОснования" в место отрицательного значения будет "0".
17 Aleksey
 
15.11.11
14:06
(16) Смерись, это фича такая
18 1Сергей
 
15.11.11
14:06
(16) это ты таким образом выгружаешь ТЧ нескольких доков в одну ТЗ? Ну, ну...
19 St17
 
15.11.11
14:08
(18) не. Вы меня не правельно поняли!
   ТаблицаОснования = СоздатьОбъект("ТаблицаЗначений");
   
   Докум.ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаОснования);
   
   ПодчинДок=СоздатьОбъект("Документ");
   ПодчинДок.ВыбратьПодчиненныеДокументы(,,Докум.ДокОснование);  
   Пока ПодчинДок.ПолучитьДокумент()=1 Цикл
       Если ПодчинДок.Вид()="ВозвратОтПокупателя"Тогда  
           Если ПодчинДок.ПометкаУдаления()=1 Тогда
               Продолжить;
           КонецЕсли;
           Если ПодчинДок.Проведен()=0 Тогда
               Продолжить;
           КонецЕсли;
           ПодчинДок.ВыбратьСтроки();
           Пока ПодчинДок.ПолучитьСтроку()=1 Цикл    
               ТаблицаОснования.НоваяСтрока();
               ТаблицаОснования.Номенклатура=ПодчинДок.Номенклатура;
               ТаблицаОснования.Количество=-(ПодчинДок.Количество);
               ТаблицаОснования.Коэффициент=ПодчинДок.Коэффициент;
               ТаблицаОснования.Цена=ПодчинДок.Цена;
               ТаблицаОснования.Единица=ПодчинДок.Единица;  
               ТаблицаОснования.СтавкаНДС=ПодчинДок.СтавкаНДС;        
               ТаблицаОснования.СтавкаНП=ПодчинДок.СтавкаНП;
               ТаблицаОснования.Сумма=-(ПодчинДок.Сумма);
               ТаблицаОснования.СуммаНДС=-(ПодчинДок.СуммаНДС);
               ТаблицаОснования.СуммаНП=-(ПодчинДок.СуммаНП);
           КонецЦикла;
       КонецЕсли;
   КонецЦикла;    
   ТаблицаОснования.Свернуть("Номенклатура,Коэффициент,Цена,Единица,СтавкаНДС,СтавкаНП","Единица,Количество,Сумма,СуммаНДС,СуммаНП");
20 andrewks
 
15.11.11
14:09
Если ПодчинДок.ПометкаУдаления()=1 Тогда
               Продолжить;
           КонецЕсли;
           Если ПодчинДок.Проведен()=0 Тогда
               Продолжить;
           КонецЕсли;


а что, есть варианты?
21 St17
 
15.11.11
14:09
* Задача вывести печформу с учетом возвратов. Вот и ищю оптимальное рещение!
22 St17
 
15.11.11
14:10
(20) к сожалению
23 andrewks
 
15.11.11
14:11
(22) чо, бывают у вас доки проведённые, но помеченные на удаление? жесть
24 St17
 
15.11.11
14:15
(23) не))) это черновик.
25 andrewks
 
15.11.11
14:16
багофича
26 1Сергей
 
15.11.11
14:18
попробуй сделать УстановитьПараметрыКолонки до ввода новых строк.
попробуй свернуть таблицу до ввода новых строк.
может, проканает
27 St17
 
15.11.11
14:21
(26) прокатило спасибо!
28 St17
 
15.11.11
14:22
ТаблицаОснования = СоздатьОбъект("ТаблицаЗначений");
   
   Докум.ДокОснование.ВыгрузитьТабличнуюЧасть(ТаблицаОснования);
   ТаблицаОснования.УстановитьПараметрыКолонки("Количество","Число",15,2,"Количество",18,,);
   ТаблицаОснования.УстановитьПараметрыКолонки("Сумма","Число",15,2,"Сумма",18,,);
   ТаблицаОснования.УстановитьПараметрыКолонки("СуммаНДС","Число",15,2,"СуммаНДС",18,,);
   ТаблицаОснования.УстановитьПараметрыКолонки("СуммаНП","Число",15,2,"СуммаНП",18,,);
   
   ПодчинДок=СоздатьОбъект("Документ");
   ПодчинДок.ВыбратьПодчиненныеДокументы(,,Докум.ДокОснование);  
   Пока ПодчинДок.ПолучитьДокумент()=1 Цикл
       Если ПодчинДок.Вид()="ВозвратОтПокупателя"Тогда  
           Если ПодчинДок.ПометкаУдаления()=1 Тогда
               Продолжить;
           КонецЕсли;
           ПодчинДок.ВыбратьСтроки();
           Пока ПодчинДок.ПолучитьСтроку()=1 Цикл    
               ТаблицаОснования.НоваяСтрока();
               ТаблицаОснования.Номенклатура=ПодчинДок.Номенклатура;
               ТаблицаОснования.Количество=-(ПодчинДок.Количество);
               ТаблицаОснования.Коэффициент=ПодчинДок.Коэффициент;
               ТаблицаОснования.Цена=ПодчинДок.Цена;
               ТаблицаОснования.Единица=ПодчинДок.Единица;  
               ТаблицаОснования.СтавкаНДС=ПодчинДок.СтавкаНДС;        
               ТаблицаОснования.СтавкаНП=ПодчинДок.СтавкаНП;
               ТаблицаОснования.Сумма=-(ПодчинДок.Сумма);
               ТаблицаОснования.СуммаНДС=-(ПодчинДок.СуммаНДС);
               ТаблицаОснования.СуммаНП=-(ПодчинДок.СуммаНП);
           КонецЦикла;
       КонецЕсли;
   КонецЦикла;    
   ТаблицаОснования.Свернуть("Номенклатура,Коэффициент,Цена,Единица,СтавкаНДС,СтавкаНП","Единица,Количество,Сумма,СуммаНДС,СуммаНП");
29 andrewks
 
15.11.11
14:24
если надо универсально:

Функция ПереносДанныхТЗ(ТЗ1)
  Перем Ид,Тип,Длина,Точн,Заг,Ширина,Форм,Полож;
 
  ТЗ2=СоздатьОбъект("ТаблицаЗначений");
  ТЗ2.КоличествоСтрок(ТЗ1.КоличествоСтрок());
 
  Для нк=1 По ТЗ1.КоличествоКолонок() Цикл
     Ид=ТЗ1.ПолучитьПараметрыКолонки(нк,Тип,Длина,Точн,Заг,Ширина,Форм,Полож);
     ТЗ2.НоваяКолонка(Ид,Тип,Длина,Точн,Заг,Ширина,Форм,Полож);
  КонецЦикла;
  ТЗ2.Заполнить(ТЗ1);
  Возврат ТЗ2;
КонецФункции


ТЗ=ПереносДанныхТЗ(ТЗ);
30 St17
 
15.11.11
14:28
(29) спасибо учтем
Ошибка? Это не ошибка, это системная функция.