|
Перебрать ТЧ | ☑ | ||
---|---|---|---|---|
0
KENT2007
04.12.12
✎
11:05
|
Помогите обработать табличную часть документа Оказание услуг
нужно изменить Наименование договора Сумма из документа Оказание услуг + номер договора |
|||
1
Wobland
04.12.12
✎
11:05
|
принимай телепатический луч помощи
|
|||
2
KENT2007
04.12.12
✎
11:11
|
может есть пример как отобрать ТЧ документа
|
|||
3
Wobland
04.12.12
✎
11:11
|
(2) у кого?
|
|||
4
cw014
04.12.12
✎
11:12
|
(3) Судя по всему у документа
|
|||
5
Килограмм
04.12.12
✎
11:13
|
Сделай так:
Для Каждого Строка Из ТабличнаяЧасть Цикл // команды по обработка табл. части КонецЦикла |
|||
6
Wobland
04.12.12
✎
11:13
|
(5) Строка - плохая ид6ея
|
|||
7
cw014
04.12.12
✎
11:14
|
(5) Хотя бы СтрокаТЧ сделал бы... А то использование ключевых слов в качестве переменных... Ну ты в общем понял
|
|||
8
KENT2007
04.12.12
✎
11:14
|
в оказание услуг
нужно перебрать список договоров и присвоисть имени договора сумма + номер договора |
|||
9
mzelensky
04.12.12
✎
11:15
|
(5) лучше строкаТЧ
|
|||
10
Wobland
04.12.12
✎
11:15
|
(8) как _список_ договоров относится к документу?
|
|||
11
Godofsin
04.12.12
✎
11:15
|
(8) попахивает бредятиной
|
|||
12
Килограмм
04.12.12
✎
11:15
|
(2) вот пример
Для Каждого Строка ИЗ ВидыРабот Цикл Если ПустаяСтрока(НаименованиеПеречня) Тогда НаименованиеПеречня = СокрЛП(Строка.ВидРабот.Владелец.Наименование); КонецЕсли; Если ЗначениеЗаполнено(Строка.Стоимость) Тогда Если Строка.Стоимость.РазмерВзносаВКомпенсационныйФондСоСтраховкой>МаксСтоимостьЧисло Тогда МаксСтоимостьЧисло = Строка.Стоимость.РазмерВзносаВКомпенсационныйФондСоСтраховкой; МаксСтоимостьСпр = Строка.Стоимость; КонецЕсли; КонецЕсли; //Посчитаем группы только первого уровня Если Строка.ВидРабот.ЭтоГруппа Тогда Если Строка.ВидРабот.Родитель=ПустойВидРабот Тогда КоличествоГрупп = КоличествоГрупп + 1; Иначе ВстретилиУровень2 = Истина; РодительУровень2 = Строка.ВидРабот.Родитель; КонецЕсли; Иначе КоличествоВР = КоличествоВР + 1; КонецЕсли; //Проверим на ГП Если НЕ ЕстьГП Тогда ЕстьГП = ОбщегоНазначения.ПроверкаНаГП(Строка.ВидРабот.Код, НаименованиеПеречня); КонецЕсли; Если Строка.ОпасныйВидРабот Тогда КоличествоВРОО = КоличествоВРОО + 1; КонецЕсли; КонецЦикла; |
|||
13
Wobland
04.12.12
✎
11:16
|
(12) Строка - плохая идея
|
|||
14
KENT2007
04.12.12
✎
11:16
|
(10) из дока нужна сумма, при разноски кассы видно какая сумма по договору
|
|||
15
Килограмм
04.12.12
✎
11:16
|
(7) копипастил пример из чужой самописки
|
|||
16
Wobland
04.12.12
✎
11:17
|
(14) тут одна сумма, там другая. 0договор один и тот же. что делать?
|
|||
17
KENT2007
04.12.12
✎
11:17
|
(15) можно на обменик
|
|||
18
informts
04.12.12
✎
11:18
|
групповой обработкой справочников и документов, галку обрабатывать табличные части
|
|||
19
KENT2007
04.12.12
✎
11:18
|
(16) на каждую сумму договор другой
|
|||
20
Wobland
04.12.12
✎
11:19
|
ладно я, у меня руки нет. но ТСу-то ничего не стоит в нужном месте шифт+7 нажать, а?
|
|||
21
beer_fan
04.12.12
✎
11:19
|
Может так:
СуммаИтог = Док.Товары.Итог("Сумма"); Договор = док.ДоговорКонтрагента.ПолучитьОбъект(); Договор.Наименование = "" + СуммаИтог + " " + Договор.Номер; Договор.Записать(); |
|||
22
Wobland
04.12.12
✎
11:19
|
(19) это частные случаи
|
|||
23
cw014
04.12.12
✎
11:20
|
Я понять не могу. Тебе нужно табличную часть перебрать? У табличной части нет реквизита "Договор". Тебе нужно договор поменять? Тогда вообще лучше запросом делай, и не нужна тебе табличная часть - СуммаДокумента тебе в помощь
|
|||
24
Килограмм
04.12.12
✎
11:21
|
(6) (7) - если в типовой БП сделать поиска по "Для Каждого Строка", то будет найдено очень много примеров использования зарезервированного слова в типовой
|
|||
25
KENT2007
04.12.12
✎
11:21
|
(23) документ оказание услуг, там все есть
|
|||
26
Wobland
04.12.12
✎
11:22
|
(25) а попробуй задачу в одно внятное предложение уложить
|
|||
27
hhhh
04.12.12
✎
11:24
|
но ведь все пишут
Запрос = Новый Запрос; и никто почему-то не возмущается. |
|||
28
KENT2007
04.12.12
✎
11:25
|
взлетит по примеру ?
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПотребностьВТранспорте.Ссылка КАК Потребность, | ПотребностьВТранспорте.ПометкаУдаления |ИЗ | Документ.ПотребностьВТранспорте КАК ПотребностьВТранспорте |ГДЕ | ПотребностьВТранспорте.ПометкаУдаления = ЛОЖЬ"; Запрос.УстановитьПараметр("Ложь", Ложь); Результат = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = Результат.Выбрать(); докПотребность = Документы.ПотребностьВТранспорте.СоздатьДокумент(); ТипКонтрагент = Новый ОписаниеТипов("СправочникСсылка.Контрагенты"); ТаблицаЗначений = Новый ТаблицаЗначений; ТаблицаЗначений.Колонки.Добавить("Перевозчик",ТипКонтрагент,"Перевозчик"); ТаблицаЗначений.Колонки.Добавить("Плательщик",ТипКонтрагент,"Плательщик"); ТаблицаЗначений.Колонки.Добавить("НомерСчета",Новый ОписаниеТипов("Строка"),"Номер счета"); ТаблицаЗначений.Колонки.Добавить("СуммаСчета",Новый ОписаниеТипов("Число"),"Сумма счета"); ТаблицаЗначений.Колонки.Добавить("ДатаПолучСчета",Новый ОписаниеТипов("Дата"),"Дата получ."); ТаблицаЗначений.Колонки.Добавить("ДатаОплСчета",Новый ОписаниеТипов("Дата"),"Дата опл."); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл докПотребность = ВыборкаДетальныеЗаписи.Потребность; Если ЗначениеЗаполнено(докПотребность.ТК) = Истина Тогда СтрокаТабЗначений = ТаблицаЗначений.Добавить(); СтрокаТабЗначений.Перевозчик = докПотребность.ТК; СтрокаТабЗначений.Плательщик = докПотребность.Плательщик; СтрокаТабЗначений.Плательщик = докПотребность.НомерСчета; СтрокаТабЗначений.Плательщик = докПотребность.СуммаСчета; СтрокаТабЗначений.Плательщик = докПотребность.ДатаПолучСчета; СтрокаТабЗначений.Плательщик = докПотребность.ДатаОплСчета; докПотребность.Счета.Загрузить(ТаблицаЗначений); докПотребность.Записать(РежимЗаписиДокумента.Запись); КонецЕсли; КонецЦикла; |
|||
29
Pro-tone
04.12.12
✎
11:26
|
(28) зачем ты в цикле записываешь один и тот же документ?
|
|||
30
KENT2007
04.12.12
✎
11:27
|
я не записываю, это пример
|
|||
31
Pro-tone
04.12.12
✎
11:29
|
твой код (28) совсем не под тему (0). Ответ в (5)
|
|||
32
KENT2007
04.12.12
✎
11:32
|
(31) а есть пример с (5)
|
|||
33
Wobland
04.12.12
✎
11:36
|
(32) он в (24)
|
|||
34
Килограмм
04.12.12
✎
11:38
|
(32) и ещё в (12)
|
|||
35
Pro-tone
04.12.12
✎
11:39
|
(32)
Сч=0; Для Каждого ТекСтрока Из МояТабличнаяЧасть Цикл Сч=Сч+1; ТекСтрока.МояМистоКолонка1 = Сч; ТекСтрока.МояМистоКолонка2 = Сч/ МояТабличнаяЧасть.Количество(); Если Сч = МояТабличнаяЧасть.Количество() Тогда Сообщить("Ура! Наконец-то я познал пример с перебором строк ТЧ!"); Иначе Сообщить("Пока рано..."); КонецЕсли; КонецЦикла |
|||
36
KENT2007
04.12.12
✎
11:42
|
а с самого нчала как документ ссылка ....
|
|||
37
Килограмм
04.12.12
✎
11:45
|
(35) забавные месаги :)
|
|||
38
KENT2007
04.12.12
✎
11:47
|
)
|
|||
39
KENT2007
04.12.12
✎
11:47
|
ОУ=Документы.ОказаниеУслуг.Выбрать();
так |
|||
40
Килограмм
04.12.12
✎
11:47
|
(37) с самого начала так:
ДокументАктСв = Документы.АктСверкиВзаиморасчетов.НайтиПоНомеру("00000001"); МояТабличнаяЧасть = ДокументАктСв.ПоДаннымОрганизации; |
|||
41
Килограмм
04.12.12
✎
11:48
|
(40) только для этого примера нужно будет потом ещё документ записать
|
|||
42
KENT2007
04.12.12
✎
11:51
|
документы есть, проведены
|
|||
43
Килограмм
04.12.12
✎
11:52
|
(42) перезаписать в смысле, чтобы изменения сохранить в таб. части
|
|||
44
KENT2007
04.12.12
✎
12:00
|
бред ?
Процедура КнопкаВыполнитьНажатие(Кнопка) Документ = Документы.ОказаниеУслуг.НайтиПоНомеру("00000000109"); МояТабличнаяЧасть = Документ.Контрагенты; Для Каждого ТекСтрока Из МояТабличнаяЧасть Цикл тДоговор =ТекСтрока.ДоговорКонтрагента.ПолучитьОбъект(); тДоговор = ТекСтрока.ДоговорКонтрагента.ВидВзаиморасчетов + " " +ТекСтрока.Сумма+ " " +ТекСтрока.ДоговорКонтрагента.Номер; тДоговор.Записать(); КонецЦикла КонецПроцедуры |
|||
45
KENT2007
04.12.12
✎
12:00
|
даже в цикл не попадает
|
|||
46
kosts
04.12.12
✎
12:03
|
(44) тДоговор <тут что то пропустил> = ...
|
|||
47
kosts
04.12.12
✎
12:04
|
тДоговор <тут имею ввиду> = ТекСтрока.ДоговорКонтрагента.ВидВзаиморасчетов ...
|
|||
48
salvator
04.12.12
✎
12:04
|
(45) Документ не нашелся по номеру?
|
|||
49
KENT2007
04.12.12
✎
12:05
|
нашелся а в цикл не входит
|
|||
50
OberNew
04.12.12
✎
12:06
|
пустая ТЧ
|
|||
51
KENT2007
04.12.12
✎
12:07
|
вроде не нашелся док
|
|||
52
Wobland
04.12.12
✎
12:07
|
(49) теперь разучи комбинацию шифт+.
|
|||
53
KENT2007
04.12.12
✎
12:09
|
почему док может не находить?
|
|||
54
salvator
04.12.12
✎
12:11
|
(53) Потому что номера такого нет, видимо.
|
|||
55
kosts
04.12.12
✎
12:12
|
(53) НайтиПоНомеру(<НомерДокумента>, <ДатаИнтервала>)
|
|||
56
kosts
04.12.12
✎
12:14
|
Проверь, нет ли случайно еще документа с таким же номером.
может НайтиПоНомеру() так и должно работать? |
|||
57
KENT2007
04.12.12
✎
12:17
|
все норм с датой документ нашелся
{Форма.Форма.Форма(11)}: Преобразование значения к типу Число не может быть выполнено тДоговор.Наименование = ТекСтрока.ДоговорКонтрагента.ВидВзаиморасчетов + " " +ТекСтрока.Сумма+ " " +ТекСтрока.ДоговорКонтрагента.Номер; |
|||
58
salvator
04.12.12
✎
12:18
|
(57) Добавь
""+ после "равно" |
|||
59
Wobland
04.12.12
✎
12:19
|
(57) сочувствую
|
|||
60
KENT2007
04.12.12
✎
12:21
|
все разобрался, спасибо всем
|
|||
61
KENT2007
04.12.12
✎
12:21
|
тДоговор.Наименование = Строка(ТекСтрока.ДоговорКонтрагента.ВидВзаиморасчетов) + " " +Строка(ТекСтрока.Сумма)+ " " +Строка(ТекСтрока.ДоговорКонтрагента.Номер)+ " ";
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |