Группа: Пользователи*
Сообщений: 940
Спасибо сказали: 285 раз
Рейтинг: 0
Цитата(gorik77 @ 28.06.11, 18:17)
Для вывода на печать использую одну и ту же таблицу, т.е. использую в обеих случаях одинаковые идентификаторы. а разницы в формулах при выводе как по мне я не вижу, ... если я не прав то поправьте плиз.
При заполнении таблицы в варианте "меньше 5" Вы используете данные из таблицы документа, перебирая в цикле его строки, и в том же цикле рассчитанные переменные, т.е. формулы вида
Товар Ед
и т.д. При заполнении таблицы в варианте "больше 5" Вы используете данные из таблицы значений, поэтому формулы должны быть вида
ТаблТМЦ.Товар ТаблТМЦ.Ед
и т.д. Поскольку во втором варианте Вы используете формулы, правильные для первого варианта, в результате получаете последние значения, записанные в переменные еще при обработке таблицы значений.
Цитата(dmiter @ 28.06.11, 22:42)
Проверь - может быть типизированная колонка (после загрузки табличной части документа). Поэтому не работает присваивание ТаблТМЦ.Ед. (т.е. присваивает пустое значение с типом Справочник.ЕдИзм). Можно отладчиком после присваивания - если да тогда необходимо будет заводить новую колонку...
Об этом тоже думала, но, поскольку тип колонки задан неявно, не факт, что в этом месте возникает проблема, но проверить стоит.
Группа: Пользователи
Сообщений: 122
Спасибо сказали: 2 раз
Рейтинг: 0
Цитата(5_kopeek @ 29.06.11, 0:18)
Поскольку во втором варианте Вы используете формулы, правильные для первого варианта, в результате получаете последние значения, записанные в переменные еще при обработке таблицы значений.
Об этом тоже думала, но, поскольку тип колонки задан неявно, не факт, что в этом месте возникает проблема, но проверить стоит.
Все проверил, исправил, добавил новую колону. все стало группировать и выводить, но единицы измерения так и не выводит на печать. Хотя в ТаблицеЗначений все нормально. "Ед" в таблице с типом выражение.
Если КоличествоСтрок() > 5 Тогда
Предупреждение (" Количество строк более 5"); ВыгрузитьТабличнуюЧасть(ТаблТМЦ); ТаблТМЦ.НоваяКолонка("Товар","Справочник.ТМЦ"); ТаблТМЦ.НоваяКолонка("КвоМест","Число",12,2); ТаблТМЦ.НоваяКолонка("ТоннаПр","Число",12,5); ТаблТМЦ.НоваяКолонка("Единица"); ТаблТМЦ.ВыбратьСтроки(); Пока ТаблТМЦ.ПолучитьСтроку() = 1 Цикл СпрЕд=СоздатьОбъект("Справочник.ЕдиницыИзмерения"); Товар = ТаблТМЦ.ТМЦ.Родитель; ТаблТМЦ.Товар=Товар; ТаблТМЦ.Единица=ТаблТМЦ.Ед.Ед; ТаблТМЦ.ВыбратьСтроку(); СпрЕд.ИспользоватьВладельца(ТаблТМЦ.ТМЦ); СпрЕд.НайтиПоНаименованию("т."); Если СпрЕд.Выбран()>0 Тогда Тон = СпрЕд.Коэффициент; ТоннаПр = (ТаблТМЦ.Коэффициент/Тон)*ТаблТМЦ.Кво; ТаблТМЦ.ТоннаПр = ТоннаПр; Иначе Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент тонна"); Продолжить; КонецЕсли; ИтогТоннаПр=ИтогТоннаПр+ТаблТМЦ.ТоннаПр; СпрЕд.НайтиПоНаименованию("Место"); Если СпрЕд.Выбран()>0 Тогда Место = СпрЕд.Коэффициент; КвоМест = (ТаблТМЦ.Коэффициент/Место)*ТаблТМЦ.Кво; ТаблТМЦ.КвоМест=КвоМест; Иначе Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент Место"); Продолжить; КонецЕсли; ИтогКвоМест=ИтогКвоМест+ТаблТМЦ.КвоМест; КонецЦикла; ТаблТМЦ.ВыбратьСтроку(); ТаблТМЦ.Свернуть("Товар,Единица","Кво,СуммаСНДС,КвоМест,ТоннаПр"); ТаблТМЦ.Сортировать("Товар,Единица"); Таб.ИсходнаяТаблица("ТранспортнаяНакладная_Укр"); ТаблТМЦ.ВыбратьСтроку(); ТаблТМЦ.ВыбратьСтроки(); Пока ТаблТМЦ.ПолучитьСтроку()=1 Цикл
А у меня другой вопрос. А можно ли свернуть печатную таблицу перед тем как вывести ее, или надо ее сворачивать или формировать правильно до того как ее вывел???
Вы станете богаче, лишь став умнее... Чем дальше в лес, тем толще партизаны. Нельзя недооценивать, не предсказуемость тупизны...
Группа: Пользователи*
Сообщений: 940
Спасибо сказали: 285 раз
Рейтинг: 0
Цитата(Kutuzov @ 29.06.11, 18:27)
А у меня другой вопрос. А можно ли свернуть печатную таблицу перед тем как вывести ее, или надо ее сворачивать или формировать правильно до того как ее вывел???
Какая разница между "перед тем как вывести ее" и "до того как ее вывел"? И что Вы понимаете под термином "печатная таблица"?
Группа: Пользователи*
Сообщений: 940
Спасибо сказали: 285 раз
Рейтинг: 0
Kutuzov, Вы как-то так изъясняетесь, что я не могу понять Ваш вопрос. Если речь идет о группировании строк в печатной форме, как в Excel, то штатными средствами в 7.7 это невозможно. А вообще, подготовленные данные выводятся в печатную форму. Тем, что уже выведено, можно манипулировать в определенных рамках как с областью.
Kutuzov, Вы как-то так изъясняетесь, что я не могу понять Ваш вопрос. Если речь идет о группировании строк в печатной форме, как в Excel, то штатными средствами в 7.7 это невозможно. А вообще, подготовленные данные выводятся в печатную форму. Тем, что уже выведено, можно манипулировать в определенных рамках как с областью.
вот и ответ на вой вопрос.
Вы станете богаче, лишь став умнее... Чем дальше в лес, тем толще партизаны. Нельзя недооценивать, не предсказуемость тупизны...
Группа: Пользователи
Сообщений: 122
Спасибо сказали: 2 раз
Рейтинг: 0
Цитата(5_kopeek @ 29.06.11, 16:34)
Это что такое?
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Ед;
Возможно, имели ввиду
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Наименование
, а в таблице формула
ТаблТМЦ.Единица
Да, и тип колонки Единица можно указать явно -- "Строка".
Да. вы почти правы, для полного и безконфликтного вывода всех данных пришлось изменить формулы после ввода новых колонок. ета строка возвращает первичное значение и структуру колонки "Ед".
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Ед;
может я и сам еще не до конца понял весь процес, но добился того что все работает. я понимаю, со стороны полный бред, но если вы вставите етот код в расходную накладную внутри цыкла встравите "ВыбратьСтроку()" то вы сами все увидите. Без етого выражения "Ед" с каждым циклом будет пропадать, я полностью еще не разобрался с "ТаблицамиЗначений", но я точно могу утверждать что ета строчка возвращаед колонке "Ед", свое первоначальное значение. может как то и коряво, через плече, но код закончен и работает отлично. вот только бухгалтеров сложно приучить содержать справочники в порядке, а то у них вместо группы товара стоит название фирмы которая поставляет товар, а не как положено к примеру ( "Крупы", "Запчасти","Топливо", и Т.Д.). вот полностью законченый и рабочий код, я очень благодарен всем за дельные советы.
Если КоличествоСтрок() > 5 Тогда
Предупреждение (" Количество строк более 5"); ВыгрузитьТабличнуюЧасть(ТаблТМЦ); ТаблТМЦ.НоваяКолонка("Товар","Справочник.ТМЦ"); ТаблТМЦ.НоваяКолонка("КвоМест","Число",12,2); ТаблТМЦ.НоваяКолонка("ТоннаПр","Число",12,5); ТаблТМЦ.НоваяКолонка("Единица"); ТаблТМЦ.ВыбратьСтроки(); Пока ТаблТМЦ.ПолучитьСтроку() = 1 Цикл СпрЕд=СоздатьОбъект("Справочник.ЕдиницыИзмерения"); Товар = ТаблТМЦ.ТМЦ.Родитель; ТаблТМЦ.Товар=Товар; ТаблТМЦ.Единица=ТаблТМЦ.Ед.Ед; СпрЕд.ИспользоватьВладельца(ТаблТМЦ.ТМЦ); СпрЕд.НайтиПоНаименованию("т."); Если СпрЕд.Выбран()>0 Тогда Тон = СпрЕд.Коэффициент; ТоннаПр = (ТаблТМЦ.Коэффициент/Тон)*ТаблТМЦ.Кво; ТаблТМЦ.ТоннаПр = ТоннаПр; Иначе Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент тонна"); Продолжить; КонецЕсли; ИтогТоннаПр=ИтогТоннаПр+ТаблТМЦ.ТоннаПр; СпрЕд.НайтиПоНаименованию("Место"); Если СпрЕд.Выбран()>0 Тогда Место = СпрЕд.Коэффициент; КвоМест = (ТаблТМЦ.Коэффициент/Место)*ТаблТМЦ.Кво; ТаблТМЦ.КвоМест=КвоМест; Иначе Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент Место"); Продолжить; КонецЕсли; ИтогКвоМест=ИтогКвоМест+ТаблТМЦ.КвоМест; КонецЦикла; ТаблТМЦ.Свернуть("Товар,Единица","Кво,СуммаСНДС,КвоМест,ТоннаПр"); ТаблТМЦ.Сортировать("Товар,Единица"); Таб.ИсходнаяТаблица("ТранспортнаяНакладная_Укр"); ТаблТМЦ.ВыбратьСтроки(); Пока ТаблТМЦ.ПолучитьСтроку()=1 Цикл
Иначе //Если количество строк менее 5 ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл СпрЕд=СоздатьОбъект("Справочник.ЕдиницыИзмерения"); Товар = Тмц.ПолнНаименование;
СпрЕд.ИспользоватьВладельца(ТМЦ); СпрЕд.НайтиПоНаименованию("т."); Если СпрЕд.Выбран()>0 Тогда Тон = СпрЕд.Коэффициент; ТоннаПр = (Коэффициент/Тон)*Кво; Иначе Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент тонна"); Продолжить; КонецЕсли;
ИтогТоннаПр=ИтогТоннаПр+ТоннаПр; СпрЕд.НайтиПоНаименованию("Место"); Если СпрЕд.Выбран()>0 Тогда Место = СпрЕд.Коэффициент; КвоМест = (Коэффициент/Место)*Кво; Иначе Предупреждение (" Для """ + СокрЛП(Тмц.ПолнНаименование) + """ не указан коэффициент Место"); Продолжить; КонецЕсли; ИтогКвоМест=ИтогКвоМест+КвоМест; //************************************** ЕдТовар =Ед; КвоТовар=ТаблТМЦ.Кво; СуммаСНДСТовар=СуммаСНДС; ЦенаСНДСТовар=СуммаСНДС/Кво; Ном = Ном+1; Таб.ВывестиСекцию("Строка");
КонецЦикла; КонецЕсли;
может кому и пригодится, не жалко поделиться рабочим кодом когда Вам так помогают, хотя и самому не мало пришлось поламать голову почему то одно то другое не работало)). Всем спасибо. почти уверен что кому то точно пригодится. и не мешало бы чтоб большинство тем заканчивались рабочим кодом. а то дискусии, дискусии, а в конце фраза "0 боже, меня осенило, теперь все нормально". ведь даже если кто то и найдет тему его интерисующую, то с таким финалом можно ничего и не понять.
хотя может я и не прав, пока сам не подумаеш до Вас не дойдет, хотя если есть кто то с кем можно почоветоваться ето очень хорошо. потому что в дискуссии рождается истинна.
Группа: Пользователи*
Сообщений: 940
Спасибо сказали: 285 раз
Рейтинг: 0
Цитата(gorik77 @ 30.06.11, 22:11)
ТаблТМЦ.Единица=ТаблТМЦ.Ед.Ед;
может я и сам еще не до конца понял весь процес, но добился того что все работает. я понимаю, со стороны полный бред,
Это не бред. Если Вы используете конструкцию ТаблТМЦ.Ед, то получаете значение типа Справочник.ЕдиницыИзмерения. Поскольку такой справочник является подчиненным справочнику ТМЦ, то его элементы, принадлежащие разным товарам, но имеющие одинаковое наименование, являются разными. (Для примера: Товар1 имеет ед.изм. шт. и Товар2 имеет ед.изм. шт., но шт.<>шт., потому что эти эелементы разные -- имеют разных владельцев). Поэтому свернуть такую колонку и не получается. А когда Вы используете конструкцию ТаблТМЦ.Ед.Ед, то ссылаетесь на реквизит справочника ЕдиницыИзмерения с идентификатором Ед, т.е. получаете значение типа Перечисление.ЕдиницыИзмерения, значения которого автономны и не зависят от товара. (Элемент справочника ЕдиницыИзмерения шт., принадлежащий Товар1, имеет реквизит Ед (Перечисление.ЕдиницыИзмерения) со значением шт., и элемент шт., принадлежащий Товар2, имеет реквизит Ед со значением шт. Но в этом случае Ед=Ед, т.е. шт.=шт.). Не уверена, что объяснила понятно, но, может, это поможет Вам разобраться
Цитата
хотя может я и не прав, пока сам не подумаеш до Вас не дойдет...
Группа: Пользователи
Сообщений: 122
Спасибо сказали: 2 раз
Рейтинг: 0
Цитата(5_kopeek @ 30.06.11, 23:32)
"" хотя может я и не прав, пока сам не подумаеш до Вас не дойдет...""
А вот эту фразу не поняла.
Немного не правильно выразился, пока сам не подумаеш и не прокрутиш сто раз в голове то до Вас может и не дойти. пусть Вам хоть гениальные коды выкладывают. через пару дней Вы все просто забудеш.
PS для администрации: Вам ипользую как имя собственное
я понял, ето администрация вставляет замену, вместо т е б е на вас, хотя без етого слова иногда нельзя правильно выразить мысль.
Группа: Пользователи*
Сообщений: 940
Спасибо сказали: 285 раз
Рейтинг: 0
Цитата(gorik77 @ 30.06.11, 23:00)
я понял, ето администрация вставляет замену, вместо т е б е на вас, хотя без етого слова иногда нельзя правильно выразить мысль.
Пожалуй с этим администрация несколько погорячилась -- не всегда Т Ы -- это неуважение и невежливость В результате очень интересные предложения получаются.
Группа: Местный
Сообщений: 186
Спасибо сказали: 31 раз
Рейтинг: 0
Цитата(5_kopeek @ 01.07.11, 0:06)
В результате очень интересные предложения получаются.
Если не сказать - ругательные. Главное, что парень начал разбираться, а то иногда с некоторыми советами, можно с ума сойти.
Цитата(5_kopeek @ 30.06.11, 23:32)
хотя может я и не прав, пока сам не подумаеш до Вас не дойдет...
Наверное в этом случае "Вас" надо брать в кавычки .
По поводу кода можно несколько советов на будущее ? Просто если сам во всем разбираешься, не на все хватает времени и внимания. Есть ошибки, для данного случая не существеные но в будущем - можно взять за правило.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!