помогите разобраться с кодом пожалуйста
Если КоличествоСтрок() > 5 Тогда
Предупреждение (" Количество строк более 5");
ВыгрузитьТабличнуюЧасть(ТаблТМЦ);
ВыбратьСтроки();
ТаблТМЦ.НоваяКолонка("Товар","Справочник.ТМЦ");
ТаблТМЦ.НоваяКолонка("КвоМест","Число",12,5);
ТаблТМЦ.НоваяКолонка("ТоннаПр","Число",12,5);
ТаблТМЦ.НоваяКолонка("ЦенаСНДС","Число",12,5);
Пока ПолучитьСтроку() = 1 Цикл
Товар = ТМЦ.Родитель;
ТаблТМЦ.Товар=Товар;
СпрЕд=СоздатьОбъект("Справочник.ЕдиницыИзмерения");
СпрЕд.ИспользоватьВладельца(ТМЦ);
СпрЕд.НайтиПоНаименованию("т.");
Если СпрЕд.Выбран()>0 Тогда
Тон = СпрЕд.Коэффициент;
ТоннаПр = (Коэффициент/Тон)*Кво;
ТаблТМЦ.ТоннаПр=ТоннаПр;
Иначе
Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент тонна");
Продолжить;
КонецЕсли;
ИтогТоннаПр=ИтогТоннаПр+ТаблТМЦ.ТоннаПр;
СпрЕд.НайтиПоНаименованию("Место");
Если СпрЕд.Выбран()>0 Тогда
Место = СпрЕд.Коэффициент;
КвоМест = (Коэффициент/Место)*Кво;
ТаблТМЦ.КвоМест=КвоМест;
КонецЕсли;
ИтогКвоМест=ИтогКвоМест+ТаблТМЦ.КвоМест;
ЦенаСНДС=СуммаСНДС/Кво;
ТаблТМЦ.ЦенаСНДС=ЦенаСНДС;
КонецЦикла;
ВыбратьСтроки();
ТаблТМЦ.Свернуть("Товар,Ед","Кво,ЦенаСНДС,СуммаСНДС,КвоМест,ТоннаПр");
ТаблТМЦ.Сортировать("Товар,Ед");
Таб.ВывестиСекцию("Строка");
Ном = Ном+1;
КонецЕсли;
ТаблТМЦ.ВыбратьСтроки();
ТаблТМЦ.ПолучитьСтроку()
http://pro1c.org.ua/redirect.php?http://bookmix.ru/book.phtml?id=257623&buybook=yes#buy
Если КоличествоСтрок() > 5 Тогда
Предупреждение (" Количество строк более 5");
ВыгрузитьТабличнуюЧасть(ТаблТМЦ);
ТаблТМЦ.НоваяКолонка("Товар","Справочник.ТМЦ");
ТаблТМЦ.НоваяКолонка("КвоМест","Число",12,5);
ТаблТМЦ.НоваяКолонка("ТоннаПр","Число",12,5);
ТаблТМЦ.НоваяКолонка("ЦенаСНДС","Число",12,5);
CпрЕд=СоздатьОбъект("Справочник.ЕдиницыИзмерения");
ИтогТоннаПр=0;
ИтогКвоМест=0;
ТаблТМЦ.ВыбратьСтроки();
Пока ТаблТМЦ.ПолучитьСтроку() = 1 Цикл
Товар = ТаблТМЦ.ТМЦ.Родитель;
ТаблТМЦ.Товар=Товар;
СпрЕд.ИспользоватьВладельца(ТаблТМЦ.ТМЦ);
СпрЕд.НайтиПоНаименованию("т.");
Если СпрЕд.Выбран()>0 Тогда
Тон = СпрЕд.Коэффициент;
ТоннаПр = (Коэффициент/Тон)*Кво;
ТаблТМЦ.ТоннаПр=ТоннаПр;
Иначе
Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент тонна");
Продолжить;
КонецЕсли;
ИтогТоннаПр=ИтогТоннаПр+ТаблТМЦ.ТоннаПр;
СпрЕд.НайтиПоНаименованию("Место");
Если СпрЕд.Выбран()>0 Тогда
Место = СпрЕд.Коэффициент;
КвоМест = (Коэффициент/Место)*Кво;
ТаблТМЦ.КвоМест=КвоМест;
КонецЕсли;
ИтогКвоМест=ИтогКвоМест+ТаблТМЦ.КвоМест;
ЦенаСНДС=ТаблТМЦ.СуммаСНДС/Кво;
ТаблТМЦ.ЦенаСНДС=ЦенаСНДС;
КонецЦикла;
ТаблТМЦ.Свернуть("Товар,Ед","Кво,ЦенаСНДС,СуммаСНДС,КвоМест,ТоннаПр");
ТаблТМЦ.Сортировать("Товар,Ед");
ТаблТМЦ.ВыбратьСтроки();
Пока ТаблТМЦ.ПолучитьСтроку()=1 Цикл
Ном = Ном+1;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
КонецЕсли;
Если КоличествоСтрок() > 5 Тогда
Предупреждение (" Количество строк более 5");
ВыгрузитьТабличнуюЧасть(ТаблТМЦ);
ТаблТМЦ.НоваяКолонка("Товар","Справочник.ТМЦ");
ТаблТМЦ.НоваяКолонка("КвоМест","Число",12,5);
ТаблТМЦ.НоваяКолонка("ТоннаПр","Число",12,5);
ТаблТМЦ.НоваяКолонка("ЦенаСНДС","Число",12,5);
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Товар = ТМЦ.Родитель;
//ТаблТМЦ.Товар=Товар;
ТаблТМЦ.УстановитьЗначение(НомерСтроки,"Товар",Товар);
СпрЕд=СоздатьОбъект("Справочник.ЕдиницыИзмерения");
СпрЕд.ИспользоватьВладельца(ТМЦ);
//СпрЕд.НайтиПоНаименованию("т.");
//Если СпрЕд.Выбран()>0 Тогда
Если СпрЕд.НайтиПоНаименованию("т.")=1 Тогда
Тон = СпрЕд.Коэффициент;
ТоннаПр = (Коэффициент/Тон)*Кво;
//ТаблТМЦ.ТоннаПр=ТоннаПр;
ТаблТМЦ.УстановитьЗначение(НомерСтроки,"ТоннаПр",ТоннаПр);
Иначе
Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент тонна");
Продолжить;
КонецЕсли;
//ИтогТоннаПр=ИтогТоннаПр+ТаблТМЦ.ТоннаПр;
//СпрЕд.НайтиПоНаименованию("Место");
//Если СпрЕд.Выбран()>0 Тогда
Если СпрЕд.НайтиПоНаименованию("Место")=1 Тогда
Место = СпрЕд.Коэффициент;
КвоМест = (Коэффициент/Место)*Кво;
//ТаблТМЦ.КвоМест=КвоМест;
ТаблТМЦ.УстановитьЗначение(НомерСтроки,"КвоМест",КвоМест);
КонецЕсли;
//ИтогКвоМест=ИтогКвоМест+ТаблТМЦ.КвоМест;
ЦенаСНДС=СуммаСНДС/Кво;
//ТаблТМЦ.ЦенаСНДС=ЦенаСНДС;
ТаблТМЦ.УстановитьЗначение(НомерСтроки,"ЦенаСНДС",ЦенаСНДС);
КонецЦикла;
ИтогТоннаПр=ТаблТМЦ.Итог("ТоннаПр");
ИтогКвоМест=ТаблТМЦ.Итог("КвоМест");
ТаблТМЦ.Свернуть("Товар,Ед","Кво,ЦенаСНДС,СуммаСНДС,КвоМест,ТоннаПр");
ТаблТМЦ.Сортировать("Товар,Ед");
ном=1;
ТаблТМЦ.ВыбратьСтроки();
Пока ТаблТМЦ.ВыбратьСтроки()=1 Цикл
Таб.ВывестиСекцию("Строка");
Ном = Ном+1;
КонецЦикла;
КонецЕсли;
Уважаемый -=VJ=- ближе всего к сути, но все равно почему то не работает нормально, так как вы предложили выводит на печать все строки, а не групирует по группе товара и единице измерения и к тому же показывает правильно только "Ед" и "Кво" а все остальное берет почему то с последней строки таблицы.
Я знаю что делать:
http://pro1c.org.ua/redirect.php?http://bookmix.ru/book.phtml?id=257623
Товар = ТаблТМЦ.ТМЦ.Родитель;
ТаблТМЦ.Ед = ТаблТМЦ.Ед.Наименование;
подскажите пожалуйста как вставить сюда картинку, мне что, сперва на какойто ресурс ее выкладывать а потом сюда вставлять ссылку? если так то посоветуйте куда. а то я на пальцах рассказую суть проблемы. скрины должны пролить свет. я разобрался что создает проблемы в коде, но поборотьего не могу. а чтоб объяснить нужно выложить скрины.
спасибо.
вот что у меня получилось!!! Что то все равно делаю не так. В код повставлял "ВыбратьСтроку()" Для того чтоб просмотреть на разных этапах что получается.
Если КоличествоСтрок() > 5 Тогда
Предупреждение (" Количество строк более 5");
ВыгрузитьТабличнуюЧасть(ТаблТМЦ);
ТаблТМЦ.НоваяКолонка("Товар","Справочник.ТМЦ");
ТаблТМЦ.НоваяКолонка("КвоМест","Число",12,5);
ТаблТМЦ.НоваяКолонка("ТоннаПр","Число",12,5);
ТаблТМЦ.НоваяКолонка("ЦенаСНДС","Число",12,5);
ТаблТМЦ.ВыбратьСтроки();
СпрЕд=СоздатьОбъект("Справочник.ЕдиницыИзмерения");
Пока ТаблТМЦ.ПолучитьСтроку() = 1 Цикл
// ТаблТМЦ.Ед = ТаблТМЦ.Ед.Наименование;
Товар = ТаблТМЦ.ТМЦ.Родитель;
ТаблТМЦ.Товар=Товар;
ТаблТМЦ.ВыбратьСтроку();
СпрЕд.ИспользоватьВладельца(ТаблТМЦ.ТМЦ);
СпрЕд.НайтиПоНаименованию("т.");
Если СпрЕд.Выбран()>0 Тогда
Тон = СпрЕд.Коэффициент;
ТоннаПр = (ТаблТМЦ.Коэффициент/Тон)*ТаблТМЦ.Кво;
ТаблТМЦ.ТоннаПр = ТоннаПр;
Иначе
Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент тонна");
Продолжить;
КонецЕсли;
ИтогТоннаПр=ИтогТоннаПр+ТаблТМЦ.ТоннаПр;
СпрЕд.НайтиПоНаименованию("Место");
Если СпрЕд.Выбран()>0 Тогда
Место = СпрЕд.Коэффициент;
КвоМест = (ТаблТМЦ.Коэффициент/Место)*ТаблТМЦ.Кво;
ТаблТМЦ.КвоМест=КвоМест;
КонецЕсли;
ИтогКвоМест=ИтогКвоМест+ТаблТМЦ.КвоМест;
ЦенаСНДС=ТаблТМЦ.СуммаСНДС/ТаблТМЦ.Кво;
ТаблТМЦ.ЦенаСНДС=ЦенаСНДС;
КонецЦикла;
ТаблТМЦ.ВыбратьСтроку();
ТаблТМЦ.Свернуть("Товар,Ед","Кво,ЦенаСНДС,КвоМест,ТоннаПр");
ТаблТМЦ.Сортировать("Товар,Ед");
Таб.ИсходнаяТаблица("ТранспортнаяНакладная_Укр");
ТаблТМЦ.ВыбратьСтроку();
ТаблТМЦ.ВыбратьСтроки();
Пока ТаблТМЦ.ПолучитьСтроку()=1 Цикл
Ном = Ном+1;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
КонецЕсли;
Иначе //Если количество строк менее 5
Пока ПолучитьСтроку() = 1 Цикл
//*********************************
// Получение кол-ва тонн и мест используемого товаром
//*********************************
СпрЕд=СоздатьОбъект("Справочник.ЕдиницыИзмерения");
Товар = Тмц.ПолнНаименование;
СпрЕд.ИспользоватьВладельца(ТМЦ);
СпрЕд.НайтиПоНаименованию("т.");
Если СпрЕд.Выбран()>0 Тогда
Тон = СпрЕд.Коэффициент;
ТоннаПр = (Коэффициент/Тон)*Кво;
Иначе
Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент тонна");
Продолжить;
КонецЕсли;
ИтогТоннаПр=ИтогТоннаПр+ТоннаПр;
СпрЕд.НайтиПоНаименованию("Место");
Если СпрЕд.Выбран()>0 Тогда
Место = СпрЕд.Коэффициент;
КвоМест = (Коэффициент/Место)*Кво;
КонецЕсли;
ИтогКвоМест=ИтогКвоМест+КвоМест;
ЦенаСНДС=СуммаСНДС/Кво;
//**************************************
Ном = Ном+1;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
Для вывода на печать свернутого (больше 5 стр.) и не свернутого варианта используете одну и ту же исходную таблицу или разные? Учли разницу в формулах при выводе на печать?
Если КоличествоСтрок() > 5 Тогда
Предупреждение (" Количество строк более 5");
ВыгрузитьТабличнуюЧасть(ТаблТМЦ);
ТаблТМЦ.НоваяКолонка("Товар","Справочник.ТМЦ");
ТаблТМЦ.НоваяКолонка("КвоМест","Число",12,2);
ТаблТМЦ.НоваяКолонка("ТоннаПр","Число",12,5);
ТаблТМЦ.НоваяКолонка("Единица");
ТаблТМЦ.ВыбратьСтроки();
Пока ТаблТМЦ.ПолучитьСтроку() = 1 Цикл
СпрЕд=СоздатьОбъект("Справочник.ЕдиницыИзмерения");
Товар = ТаблТМЦ.ТМЦ.Родитель;
ТаблТМЦ.Товар=Товар;
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Ед;
ТаблТМЦ.ВыбратьСтроку();
СпрЕд.ИспользоватьВладельца(ТаблТМЦ.ТМЦ);
СпрЕд.НайтиПоНаименованию("т.");
Если СпрЕд.Выбран()>0 Тогда
Тон = СпрЕд.Коэффициент;
ТоннаПр = (ТаблТМЦ.Коэффициент/Тон)*ТаблТМЦ.Кво;
ТаблТМЦ.ТоннаПр = ТоннаПр;
Иначе
Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент тонна");
Продолжить;
КонецЕсли;
ИтогТоннаПр=ИтогТоннаПр+ТаблТМЦ.ТоннаПр;
СпрЕд.НайтиПоНаименованию("Место");
Если СпрЕд.Выбран()>0 Тогда
Место = СпрЕд.Коэффициент;
КвоМест = (ТаблТМЦ.Коэффициент/Место)*ТаблТМЦ.Кво;
ТаблТМЦ.КвоМест=КвоМест;
Иначе
Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент Место");
Продолжить;
КонецЕсли;
ИтогКвоМест=ИтогКвоМест+ТаблТМЦ.КвоМест;
КонецЦикла;
ТаблТМЦ.ВыбратьСтроку();
ТаблТМЦ.Свернуть("Товар,Единица","Кво,СуммаСНДС,КвоМест,ТоннаПр");
ТаблТМЦ.Сортировать("Товар,Единица");
Таб.ИсходнаяТаблица("ТранспортнаяНакладная_Укр");
ТаблТМЦ.ВыбратьСтроку();
ТаблТМЦ.ВыбратьСтроки();
Пока ТаблТМЦ.ПолучитьСтроку()=1 Цикл
Товар=ТаблТМЦ.Товар;
Ед=ТаблТМЦ.Единица;
Кво=ТаблТМЦ.Кво;
СуммаСНДС=ТаблТМЦ.СуммаСНДС;
ЦенаСНДС=ТаблТМЦ.СуммаСНДС/ТаблТМЦ.Кво;
КвоМест=ТаблТМЦ.КвоМест;
ТоннаПр=ТаблТМЦ.ТоннаПр;
Ном = Ном+1;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
КонецЕсли;
Это что такое?
...
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Ед;
...
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Наименование
ТаблТМЦ.Единица
А у меня другой вопрос.
А можно ли свернуть печатную таблицу перед тем как вывести ее, или надо ее сворачивать или формировать правильно до того как ее вывел???
Kutuzov, Вы как-то так изъясняетесь, что я не могу понять Ваш вопрос. Если речь идет о группировании строк в печатной форме, как в Excel, то штатными средствами в 7.7 это невозможно. А вообще, подготовленные данные выводятся в печатную форму. Тем, что уже выведено, можно манипулировать в определенных рамках как с областью.
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Ед;
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Наименование
ТаблТМЦ.Единица
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Ед;
Если КоличествоСтрок() > 5 Тогда
Предупреждение (" Количество строк более 5");
ВыгрузитьТабличнуюЧасть(ТаблТМЦ);
ТаблТМЦ.НоваяКолонка("Товар","Справочник.ТМЦ");
ТаблТМЦ.НоваяКолонка("КвоМест","Число",12,2);
ТаблТМЦ.НоваяКолонка("ТоннаПр","Число",12,5);
ТаблТМЦ.НоваяКолонка("Единица");
ТаблТМЦ.ВыбратьСтроки();
Пока ТаблТМЦ.ПолучитьСтроку() = 1 Цикл
СпрЕд=СоздатьОбъект("Справочник.ЕдиницыИзмерения");
Товар = ТаблТМЦ.ТМЦ.Родитель;
ТаблТМЦ.Товар=Товар;
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Ед;
СпрЕд.ИспользоватьВладельца(ТаблТМЦ.ТМЦ);
СпрЕд.НайтиПоНаименованию("т.");
Если СпрЕд.Выбран()>0 Тогда
Тон = СпрЕд.Коэффициент;
ТоннаПр = (ТаблТМЦ.Коэффициент/Тон)*ТаблТМЦ.Кво;
ТаблТМЦ.ТоннаПр = ТоннаПр;
Иначе
Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент тонна");
Продолжить;
КонецЕсли;
ИтогТоннаПр=ИтогТоннаПр+ТаблТМЦ.ТоннаПр;
СпрЕд.НайтиПоНаименованию("Место");
Если СпрЕд.Выбран()>0 Тогда
Место = СпрЕд.Коэффициент;
КвоМест = (ТаблТМЦ.Коэффициент/Место)*ТаблТМЦ.Кво;
ТаблТМЦ.КвоМест=КвоМест;
Иначе
Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент Место");
Продолжить;
КонецЕсли;
ИтогКвоМест=ИтогКвоМест+ТаблТМЦ.КвоМест;
КонецЦикла;
ТаблТМЦ.Свернуть("Товар,Единица","Кво,СуммаСНДС,КвоМест,ТоннаПр");
ТаблТМЦ.Сортировать("Товар,Единица");
Таб.ИсходнаяТаблица("ТранспортнаяНакладная_Укр");
ТаблТМЦ.ВыбратьСтроки();
Пока ТаблТМЦ.ПолучитьСтроку()=1 Цикл
Товар=ТаблТМЦ.Товар;
ЕдТовар =ТаблТМЦ.Единица;
КвоТовар=ТаблТМЦ.Кво;
ЦенаСНДСТовар=ТаблТМЦ.СуммаСНДС/ТаблТМЦ.Кво;
СуммаСНДСТовар=ТаблТМЦ.СуммаСНДС;
КвоМест=ТаблТМЦ.КвоМест;
ТоннаПр=ТаблТМЦ.ТоннаПр;
Ном = Ном+1;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
Иначе //Если количество строк менее 5
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
СпрЕд=СоздатьОбъект("Справочник.ЕдиницыИзмерения");
Товар = Тмц.ПолнНаименование;
СпрЕд.ИспользоватьВладельца(ТМЦ);
СпрЕд.НайтиПоНаименованию("т.");
Если СпрЕд.Выбран()>0 Тогда
Тон = СпрЕд.Коэффициент;
ТоннаПр = (Коэффициент/Тон)*Кво;
Иначе
Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент тонна");
Продолжить;
КонецЕсли;
ИтогТоннаПр=ИтогТоннаПр+ТоннаПр;
СпрЕд.НайтиПоНаименованию("Место");
Если СпрЕд.Выбран()>0 Тогда
Место = СпрЕд.Коэффициент;
КвоМест = (Коэффициент/Место)*Кво;
Иначе
Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент Место");
Продолжить;
КонецЕсли;
ИтогКвоМест=ИтогКвоМест+КвоМест;
//**************************************
ЕдТовар =Ед;
КвоТовар=ТаблТМЦ.Кво;
СуммаСНДСТовар=СуммаСНДС;
ЦенаСНДСТовар=СуммаСНДС/Кво;
Ном = Ном+1;
Таб.ВывестиСекцию("Строка");
КонецЦикла;
КонецЕсли;
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Ед;
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua