Цитата(5_kopeek @ 29.06.11, 16:34) необходимо зарегистрироваться для просмотра ссылки
Это что такое?
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Ед;
Возможно, имели ввиду
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Наименование
, а в таблице формула
ТаблТМЦ.Единица
Да, и тип колонки Единица можно указать явно -- "Строка".
Да. вы почти правы, для полного и безконфликтного вывода всех данных пришлось изменить формулы после ввода новых колонок.
ета строка возвращает первичное значение и структуру колонки "Ед".
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Ед;
может я и сам еще не до конца понял весь процес, но добился того что все работает.
я понимаю, со стороны полный бред, но если вы вставите етот код в расходную накладную внутри цыкла встравите "ВыбратьСтроку()" то вы сами все увидите. Без етого выражения "Ед" с каждым циклом будет пропадать, я полностью еще не разобрался с "ТаблицамиЗначений", но я точно могу утверждать что ета строчка возвращаед колонке "Ед", свое первоначальное значение. может как то и коряво, через плече, но код закончен и работает отлично. вот только бухгалтеров сложно приучить содержать справочники в порядке, а то у них вместо группы товара стоит название фирмы которая поставляет товар, а не как положено к примеру ( "Крупы", "Запчасти","Топливо", и Т.Д.).
вот полностью законченый и рабочий код, я очень благодарен всем за дельные советы.
Если КоличествоСтрок() > 5 Тогда
Предупреждение (" Количество строк более 5");
ВыгрузитьТабличнуюЧасть(ТаблТМЦ);
ТаблТМЦ.НоваяКолонка("Товар","Справочник.ТМЦ");
ТаблТМЦ.НоваяКолонка("КвоМест","Число",12,2);
ТаблТМЦ.НоваяКолонка("ТоннаПр","Число",12,5);
ТаблТМЦ.НоваяКолонка("Единица");
ТаблТМЦ.ВыбратьСтроки();
Пока ТаблТМЦ.ПолучитьСтроку() = 1 Цикл
СпрЕд=СоздатьОбъект("Справочник.ЕдиницыИзмерения");
Товар = ТаблТМЦ.ТМЦ.Родитель;
ТаблТМЦ.Товар=Товар;
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Ед;
СпрЕд.ИспользоватьВладельца(ТаблТМЦ.ТМЦ);
СпрЕд.НайтиПоНаименованию("т.");
Если СпрЕд.Выбран()>0 Тогда
Тон = СпрЕд.Коэффициент;
ТоннаПр = (ТаблТМЦ.Коэффициент/Тон)*ТаблТМЦ.Кво;
ТаблТМЦ.ТоннаПр = ТоннаПр;
Иначе
Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент тонна");
Продолжить;
КонецЕсли;
ИтогТоннаПр=ИтогТоннаПр+ТаблТМЦ.ТоннаПр;
СпрЕд.НайтиПоНаименованию("Место");
Если СпрЕд.Выбран()>0 Тогда
Место = СпрЕд.Коэффициент;
КвоМест = (ТаблТМЦ.Коэффициент/Место)*ТаблТМЦ.Кво;
ТаблТМЦ.КвоМест=КвоМест;
Иначе
Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент Место");
Продолжить;
КонецЕсли;
ИтогКвоМест=ИтогКвоМест+ТаблТМЦ.КвоМест;
КонецЦикла;
ТаблТМЦ.Свернуть("Товар,Единица","Кво,СуммаСНДС,КвоМест,ТоннаПр");
ТаблТМЦ.Сортировать("Товар,Единица");
Таб.ИсходнаяТаблица("ТранспортнаяНакладная_Укр");
ТаблТМЦ.ВыбратьСтроки();
Пока ТаблТМЦ.ПолучитьСтроку()=1 Цикл
Товар=ТаблТМЦ.Товар;
ЕдТовар =ТаблТМЦ.Единица;
КвоТовар=ТаблТМЦ.Кво;
ЦенаСНДСТовар=ТаблТМЦ.СуммаСНДС/ТаблТМЦ.Кво;
СуммаСНДСТовар=ТаблТМЦ.СуммаСНДС;
КвоМест=ТаблТМЦ.КвоМест;
ТоннаПр=ТаблТМЦ.ТоннаПр;
Ном = Ном+1;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
Иначе //Если количество строк менее 5
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
СпрЕд=СоздатьОбъект("Справочник.ЕдиницыИзмерения");
Товар = Тмц.ПолнНаименование;
СпрЕд.ИспользоватьВладельца(ТМЦ);
СпрЕд.НайтиПоНаименованию("т.");
Если СпрЕд.Выбран()>0 Тогда
Тон = СпрЕд.Коэффициент;
ТоннаПр = (Коэффициент/Тон)*Кво;
Иначе
Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент тонна");
Продолжить;
КонецЕсли;
ИтогТоннаПр=ИтогТоннаПр+ТоннаПр;
СпрЕд.НайтиПоНаименованию("Место");
Если СпрЕд.Выбран()>0 Тогда
Место = СпрЕд.Коэффициент;
КвоМест = (Коэффициент/Место)*Кво;
Иначе
Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент Место");
Продолжить;
КонецЕсли;
ИтогКвоМест=ИтогКвоМест+КвоМест;
//**************************************
ЕдТовар =Ед;
КвоТовар=ТаблТМЦ.Кво;
СуммаСНДСТовар=СуммаСНДС;
ЦенаСНДСТовар=СуммаСНДС/Кво;
Ном = Ном+1;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
КонецЕсли;
может кому и пригодится, не жалко поделиться рабочим кодом когда Вам так помогают, хотя и самому не мало пришлось поламать голову почему то одно то другое не работало)).
Всем спасибо.
почти уверен что кому то точно пригодится.
и не мешало бы чтоб большинство тем заканчивались рабочим кодом. а то дискусии, дискусии, а в конце фраза "0 боже, меня осенило, теперь все нормально". ведь даже если кто то и найдет тему его интерисующую, то с таким финалом можно ничего и не понять.
хотя может я и не прав, пока сам не подумаеш до Вас не дойдет, хотя если есть кто то с кем можно почоветоваться ето очень хорошо. потому что в дискуссии рождается истинна.