|
v7: Не пойму почему не сворачивает таблицу значений в клюшках Ø (Злопчинский 24.11.2016 14:26) | ☑ | ||
---|---|---|---|---|
0
asder117
24.11.16
✎
12:03
|
Доброго времени суток. Не пойму почему не сворачивает таблицу значений в модуле печати УПД
// Печать строк документа. ///МнЧ.ВыбратьСтроки(); МнЧ.ВыбратьСтроки(); МнЧ.Выгрузить(ТабЧ); ТабЧ.Свернуть("Номенклатура,Единица,Цена,СтавкаНДС,СтранаН,СтранаК,НомерГТД,ЕдиницаКод,АкцизЦена","Количество,Сумма,СуммаНП,СуммаНДС,ВсегоСНДС"); ТабЧ.ВыбратьСтроки(); НомерСтроки = 0; ТоварКод = ""; НомерСтраницы = 1; СтрокНаСтранице = 24; СтрокШапки = 9; СтрокПодвала = 13; Если ТабЧ.КоличествоСтрок() <= 3 Тогда ПереноситьПоследнююСтроку = 0; Иначе ЦелыхСтраницСПодвалом = Цел((СтрокШапки + ТабЧ.КоличествоСтрок() + СтрокПодвала) / СтрокНаСтранице); ЦелыхСтраницБезПодвала = Цел((СтрокШапки + ТабЧ.КоличествоСтрок() - 1) / СтрокНаСтранице); ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала; КонецЕсли; Пока ТабЧ.ПолучитьСтроку() = 1 Цикл НомерСтроки = НомерСтроки + 1; ЦелаяСтраница = (СтрокШапки + НомерСтроки - 1) / (СтрокНаСтранице); Если (ЦелаяСтраница = Цел(ЦелаяСтраница)) или ((ПереноситьПоследнююСтроку = 1) и (НомерСтроки = ТабЧ.КоличествоСтрок())) Тогда Таб.НоваяСтраница(); НомерСтраницы = НомерСтраницы + 1; Таб.ВывестиСекцию("ЗаголовокТаблицы"); КонецЕсли; НомерСтраницыПрописью = ПолучитьСклонениеНомераСтраницы(НомерСтраницы); Если ТипЗначения(ТабЧ.Количество) = 1 Тогда ТабЧ.Количество = Формат(ТабЧ.Количество, ФорматКоличества); КонецЕсли; Наименование = СокрЛП(ТабЧ.Номенклатура); ЕдиницаИзмеренияКод = ТабЧ.ЕдиницаКод; ЕдиницаИзмерения = ТабЧ.Единица; ПечКоличество = ?(ТабЧ.Количество=0, ПустойПоказатель, Формат(ТабЧ.Количество, ФорматКоличества)); ПечЦена = ?(ТабЧ.Цена=0, ПустойПоказатель, Формат(ТабЧ.Цена,"Ч15.2")); ПечСумма = ?(ТабЧ.Сумма=0, ПустойПоказатель, Формат(ТабЧ.Сумма,"Ч015.2")); ПечАкциз = ТабЧ.АкцизЦена; ПредставлениеСтавкиНДС = ?(ПустоеЗначение(ТабЧ.СуммаНДС) = 1, "Без НДС", ТабЧ.СтавкаНДС); ПечНДС = ?(ПустоеЗначение(ТабЧ.СуммаНДС) = 1, ПустойПоказатель, ТабЧ.СуммаНДС); ПечВсего = ?(ТабЧ.ВсегоСНДС=0, ПустойПоказатель, Формат(ТабЧ.ВсегоСНДС,"Ч15.2")); СтранаКод = ТабЧ.СтранаК; СтранаН = ТабЧ.СтранаН; НомерГТД_Н = ТабЧ.НомерГТД; Таб.ВывестиСекцию("Строка"); КонецЦикла; ПечИтогБезНДС = ?(Итоги.Получить("ИтогСумма")=0,ПустойПоказатель, Формат(Итоги.Получить("ИтогСумма"),"Ч15.2")); ПечИтогНДС = ?(Итоги.Получить("ИтогСуммаНДС")=0,ПустойПоказатель, Формат(Итоги.Получить("ИтогСуммаНДС"),"Ч15.2")); ПечИтогВсего = ?(Итоги.Получить("ИтогВсегоСНДС")=0,ПустойПоказатель, Формат(Итоги.Получить("ИтогВсегоСНДС"),"Ч15.2")); Таб.ВывестиСекцию("Подвал"); Таб.ВывестиСекцию("ПодвалНакладной"); Если Устройство = 0 Тогда Таб.Опции(0, 0, 0, 0, "ОпцииПечатиУПД", "ОкноУПД"); Если глПолучитьПолномочие("РазрешитьРедактированиеТаблиц") = 0 Тогда Таб.Защита(1); Иначе Таб.Защита(0); КонецЕсли; Таб.ТолькоПросмотр(1); Таб.ПараметрыСтраницы(2,,,,,,,,,1,,); Таб.Показать("Печать универсального передаточного документа",""); Иначе Таб.Опции(0, 0, 0, 0, "ОпцииПечатиУПД", "ОкноУПД"); Таб.КоличествоЭкземпляров(КолвоКопий); Таб.Напечатать(0); КонецЕсли; Должно свернуть по номенклатуре и одинаковой цене а нишиша не работает. Спасибо за помощь заранее |
|||
1
DrZombi
гуру
24.11.16
✎
12:04
|
Отладчик забанен? :)
|
|||
2
asder117
24.11.16
✎
12:06
|
(1) почему нет. таблицу для свертки формирует и что
|
|||
3
Злопчинский
24.11.16
✎
12:06
|
(0) "Должно свернуть по номенклатуре и одинаковой цене"
- это ты из головы выдрал? наобум? в коде такого нет. |
|||
4
asder117
24.11.16
✎
12:07
|
(3) Приветсвую Уважаемый.
а это что тогда ....делал по старым советам и вроде работало ТабЧ.Свернуть("Номенклатура,Единица,Цена,СтавкаНДС,СтранаН,СтранаК,НомерГТД,ЕдиницаКод,АкцизЦена","Количество,Сумма,СуммаНП,СуммаНДС,ВсегоСНДС"); |
|||
5
Злопчинский
24.11.16
✎
12:07
|
универсальной печатью ТЗ принтани свою таблицу после сверкти и наслаждайся втыканием...
|
|||
6
ks_83
24.11.16
✎
12:08
|
(0) Ну тогда и указывай в группировочных полях только номенклатуру и цену.
|
|||
7
Злопчинский
24.11.16
✎
12:09
|
(4) сделай такой код вместо этой строки что ты привел:
ТабЧ.Свернуть("Номенклатура,Цена","тутоставькакбыло); ТабЧ.ВыбратьСтроку(,"тест свертки"); Возврат; |
|||
8
Злопчинский
24.11.16
✎
12:09
|
(6) опередун! ;-)
|
|||
9
Злопчинский
24.11.16
✎
12:11
|
если в партионке бардак - то нормальной свертке будут препятстовать UNL/
а что там в ТЧ в части указания ставок НДС и прочих сверточных измерений - нам неведеомо також |
|||
10
asder117
24.11.16
✎
12:12
|
(7) извиняюсь "тест свертки" - это что? (9) нет там вроде все норм и все указывается. пустых и левых сторк нет
|
|||
11
asder117
24.11.16
✎
12:14
|
(7) И возврат тут к чему? не ошиблись уважаемый
|
|||
12
DrZombi
гуру
24.11.16
✎
12:16
|
(0) (10) Если не сворачивает, то тут не 1С виновата. А писатель не осознающий, что ваша ТЗ содержит уникальный перечень информации.
Для отладки лучше воспользоваться Отладчиком. И построчно рассмотреть каждую на предмет свертки. И еще Типы для свертки должны быть одинаковые. Если в одной строке Ссылка на Справочник, а в другой строке NULL, то чудо не произойдет. |
|||
13
asder117
24.11.16
✎
12:17
|
(12) Это я знаю. просто клюшки ужо достали. На 8 вообще проблем нет. тут возвращаться приходится в древний мир
|
|||
14
DrZombi
гуру
24.11.16
✎
12:18
|
(13) Это 1С 7.7? :)
Там еще проще. Но отладчик действительно не фонтан, сори :) |
|||
15
catena
24.11.16
✎
12:21
|
(10)ВыбратьСтроку
Открыть окно для интерактивного выбора строки в таблице значений. Синтаксис: ВыбратьСтроку(<Строка>, <3аголовок>, < Таймаут>) Англоязычный синоним: ChooseLine Параметры: <Строка> Необязательный параметр. Идентификатор переменной, куда помещается значение — номер выбранной строки. При вызове метода здесь можно передавать значение начального номера строки. <3аголовок> Необязательный параметр. Строковое выражение, значение которого отображается в заголовке диалогового окна. Может использоваться для подсказки пользователю. <Таймаут> Необязательный параметр. Числовое выражение, значение которого задает время ожидания системы (в секундах) на отклик пользователя. Если не задано, то время ожидания бесконечно. |
|||
16
DrZombi
гуру
24.11.16
✎
12:21
|
+(13) Вариант только 1, Пройдись построчно и избавься от пустых значений, типо СокрЛП().
Может даже проанализировать графу Страна, может там чего вписали. Посмотреть ГТД он тоже то заполнен, то нет. |
|||
17
catena
24.11.16
✎
12:21
|
(11)Возврат видимо к тому, что процедура печати дальше с такой обрезанной таблицей работать не станет. Проверить сложно?
|
|||
18
DrZombi
гуру
24.11.16
✎
12:23
|
(0)ЕдиницаКод - Зачем оно там в качестве отдельного реквизита?
1С 7.7 любит работать через ссылку и не обращается все время к БД. Т.е. один раз все считывает ;) ...т.е. работа через точку в 7.7 нормально осуществляется :) |
|||
19
aka AMIGO
24.11.16
✎
12:24
|
(17) Угу. И потому надо работающую ТЗ выгружать в другую, которую и сворачивать. А исходную - оставлять нетронутой.
|
|||
20
DrZombi
гуру
24.11.16
✎
12:24
|
+ СтранаК - тоже лишнее
|
|||
21
Масянька
24.11.16
✎
12:26
|
(0) У меня в СФ все сворачивается до номера ГТД:
МнЧ.Свернуть("Номенклатура, Единица, Цена, Акциз, СтавкаНДС, СтранаН, СтранаК, НомерГТД", "Количество, СуммаБезНДС, СуммаНП, СуммаНДС, Сумма"); |
|||
22
aka AMIGO
24.11.16
✎
12:27
|
(20)+! там много лишнего
(4) Пишешь условие "Для каждой номенклатуры и цены", и таки сворачиваешь в скобках: ".. для каждой страны, для каждого номера ГТД, для каждого.." В результате ТЗ остается в первоначальном виде. |
|||
23
asder117
24.11.16
✎
12:28
|
(17) понял (19) я так и делаю (7) вывел табличку там воде все в норме только не свернуто удивило что цена в одной 8,05000 в другой 8,0509
из-за этого-может быть? |
|||
24
DrZombi
гуру
24.11.16
✎
12:28
|
(21) У вас отсутствует код Единицы измерения :)
(0) Как вариант, загнать Единицу измерения в строку и свернуть. В виде элемента справочника сея конструкция громозка |
|||
25
asder117
24.11.16
✎
12:29
|
(22) так как лучше. да я убрал поля но они у меня сейчас в доке пустые
|
|||
26
DrZombi
гуру
24.11.16
✎
12:29
|
+(0) Вообще, загони всю номенклатуру в Строки.
Вернее для печатной формы, сдается мне, у вас тупо дублирование Номенклатуры. |
|||
27
aka AMIGO
24.11.16
✎
12:30
|
(23) именно! Еще раз - твое условие "Для каждой цены" - вот это и есть "каждая"
8,05000 и 8,0509 - разные! |
|||
28
Злопчинский
24.11.16
✎
12:30
|
(13) это вообщем-то на клюшках проблем нет. а 8-ка страшное тормозное монстрище. а то что расстановщик галочек-восьмерчоник не может втыкнуть в код - ну это понятно... ;-)
|
|||
29
Масянька
24.11.16
✎
12:30
|
(24) С чего ты взял?
(23) Цену не округляй, а держи так, как есть. А округляй при печати. |
|||
30
DrZombi
гуру
24.11.16
✎
12:30
|
(27) Я бы не догадался. Всегда думал ,что цена с двумя знаками :)
|
|||
31
Злопчинский
24.11.16
✎
12:31
|
(30) а это как точность опишешь при создании колонок - так и быдет отображать.. ;-)
|
|||
32
DrZombi
гуру
24.11.16
✎
12:31
|
(29) Так Догадки, если все нормально, Позиции идентичны на печатной форме.
То проблема в Дублировании номенклатуры и единицы измерения |
|||
33
Масянька
24.11.16
✎
12:32
|
(30) Она 2 знака в док-ах. А ты (сто пудово) считаешь по регистру.
|
|||
34
Масянька
24.11.16
✎
12:33
|
(32) Не верны твои догадки.
|
|||
35
aka AMIGO
24.11.16
✎
12:33
|
(33) Да можно обрезать, задав формат числа в свойствах колонки ТЗ :)
|
|||
36
Злопчинский
24.11.16
✎
12:34
|
хотя в восьмерке мну тоже печально, как восьмерочникам в клюшках.. ;-)
я не знаю, как выборку номенклатуры из РС вычесть из полного списка номенклатуры как справочника.. ;-) . не, я конечно догадываюсь, и дажи асилил в ИР запрос состряпать на выборку из РС, но все левые, правые, иннер, аутер и юнион джойны - я пока от них далек.. ;-) |
|||
37
asder117
24.11.16
✎
12:34
|
(32) да идентичны
|
|||
38
Масянька
24.11.16
✎
12:34
|
(35) А задано?
|
|||
39
Масянька
24.11.16
✎
12:35
|
(37) В МнЧ как садится цена?
|
|||
40
aka AMIGO
24.11.16
✎
12:35
|
(38) Твой вопрос-то бы ТС"у :)
|
|||
41
Масянька
24.11.16
✎
12:35
|
+ (39) Желательно строчку кода.
|
|||
42
DrZombi
гуру
24.11.16
✎
12:36
|
(37) Покажи полный код.
|
|||
43
asder117
24.11.16
✎
12:36
|
(41) МнЧ это сруктура
|
|||
44
Масянька
24.11.16
✎
12:37
|
(43) Писец...
|
|||
45
aka AMIGO
24.11.16
✎
12:39
|
(44) Ну, 8-рочник.. что с него возьмёшь? :)
(43) Нет, друже, это в 7-ке многострочная часть, см свойства поля в конфигураторе, в твоем документе |
|||
46
asder117
24.11.16
✎
12:39
|
(44) Полный
Полный код УПД Процедура ПечатьУПД(Знач Докум, Устройство=0, КолвоКопий=1) Экспорт Перем ШапкаИПодвал, МнЧ, Итоги, ФорматКоличества; Перем ТекстВал; // Табч = СоздатьОбъект("ТаблицаЗначений"); Если Докум.ДатаДок < '01.01.2013' Тогда ТекстСообщения = "Универсальный передаточный документ" + РазделительСтрок + "можно сформировать, начиная с 01.01.2013 г."; Предупреждение(ТекстСообщения ); Возврат; КонецЕсли; СтатусУПД = 0; ТекстПредупреждения = ""; ТекДок = ПолучитьПустоеЗначение(); Если Докум.Вид() = "СчетФактураВыданный" Тогда ТекДок = Докум; ТекДокОснование = ТекДок.ДокОснование; Если (ПустоеЗначение(ТекДокОснование.ТекущийДокумент()) = 0) Тогда Докум = ТекДокОснование; КонецЕсли; СтатусУПД = 1; ИначеЕсли Докум.Вид() = "ИсправлениеСчетаФактуры" Тогда Если Докум.ДокОснование.Вид() = "СчетФактураВыданный" Тогда ТекДок = Докум.ДокОснование; КонецЕсли; КонецЕсли; Если ПустоеЗначение(ТекДок) = 0 Тогда СтатусУПД = 2; КонецЕсли; Если (ПустоеЗначение(Докум.ТекущийДокумент()) = 0) и (СтатусУПД = 0) Тогда ПодчДок = СоздатьОбъект("Документ"); ПодчДок.ВыбратьПодчиненныеДокументы(Докум.ДатаДок,, Докум.ТекущийДокумент()); ТекущийПодчДок = ПолучитьПустоеЗначение("Документ"); Пока ПодчДок.ПолучитьДокумент() = 1 Цикл Если ПодчДок.Вид() = "СчетФактураВыданный" Тогда Если ПодчДок.ПометкаУдаления() = 1 Тогда Продолжить; КонецЕсли; ТекущийПодчДок = ПодчДок.ТекущийДокумент(); Прервать; КонецЕсли; КонецЦикла; КонецЕсли; ПодготовитьРеквизитыШапкиУПД(Докум, ТекущийПодчДок, ШапкаИПодвал); ВидОсн = Докум.Вид(); Если (ВидОсн = "СчетФактураВыданный") и (Докум.КоличествоСтрок() = 0) Тогда ПодготовитьМнЧУПД(Докум, ТекущийПодчДок, МнЧ, Итоги, ФорматКоличества); ИначеЕсли Докум.Вид() = "ИсправлениеСчетаФактуры" Тогда ПодготовитьМнЧИспрУПД(Докум, ТекущийПодчДок, МнЧ, Итоги, ФорматКоличества); ИначеЕсли ВидОсн = "ОтчетКомитенту" Тогда ПодготовитьПоКнигеПродажУПД(Докум, МнЧ, Итоги, ФорматКоличества, "Комиссионное вознаграждение"); ИначеЕсли ВидОсн = "ЗакрытиеМесяца" Тогда ПодготовитьПоКнигеПокупокУПД(Докум, МнЧ, Итоги, ФорматКоличества, "Корректировка НДС, предъявляемого к вычету"); ИначеЕсли (ВидОсн = "ВводОстатковПокупателя") или (ВидОсн = "ОтчетКомиссионера") Тогда ПодготовитьМнЧоснУПД(Докум, МнЧ, Итоги, ФорматКоличества); ИначеЕсли (ВидОсн = "ПКО") ИЛИ (ВидОсн = "КорректировкаДолга") ИЛИ (ВидОсн = "РКО") ИЛИ (ВидОсн = "СтрокаВыпискиПриход") ИЛИ (ВидОсн = "СтрокаВыпискиРасход") Тогда ПодготовитьМнЧУПД(Докум, ТекущийПодчДок, МнЧ, Итоги, ФорматКоличества); ПечВалюта = "наименование, код " + СокрЛП(глРубли.ПолнНаименование) +", " + глРубли.Код; Иначе ПодготовитьМнЧоснУПД(Докум,МнЧ, Итоги, ФорматКоличества); КонецЕсли; ПустойПоказатель = "----"; Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Таблица"); ПечНомерДокумента = ШапкаИПодвал.Получить("ПечНомерДокумента"); ПечДатаДокумента = ШапкаИПодвал.Получить("ПечДатаДокумента"); ПечНомерИсправления = ШапкаИПодвал.Получить("ПечНомерИсправления"); ПечДатаИсправления = ШапкаИПодвал.Получить("ПечДатаИсправления"); ПечПродавец = ШапкаИПодвал.Получить("ПечПродавец"); ПечПродавецАдрес = ШапкаИПодвал.Получить("ПечПродавецАдрес"); ПечСтатусУПД = ШапкаИПодвал.Получить("ПечСтатусУПД"); ПечПродавецИННКПП = ШапкаИПодвал.Получить("ПечПродавецИННКПП"); ПечГрузоотправитель = ШапкаИПодвал.Получить("ПечГрузоотправитель"); ПечГрузополучатель = ШапкаИПодвал.Получить("ПечГрузополучатель"); ПечНомерПлатРасчДок = ШапкаИПодвал.Получить("ПечНомерПлатРасчДок"); ПечДатаПлатРасчДок = ШапкаИПодвал.Получить("ПечДатаПлатРасчДок"); ПечПокупатель = ШапкаИПодвал.Получить("ПечПокупатель"); ПечПокупательАдрес = ШапкаИПодвал.Получить("ПечПокупательАдрес"); ПечПокупательИННКПП = ШапкаИПодвал.Получить("ПечПокупательИННКПП"); ВалютаПечати = ШапкаИПодвал.Получить("ВалютаПечати"); ПечОснование = ШапкаИПодвал.Получить("ПечОснование"); ПечДатаОтгрузкиПередачи = ШапкаИПодвал.Получить("ПечДатаОтгрузкиПередачи"); ПечПредставлениеОрганизации = ШапкаИПодвал.Получить("ПечПредставлениеОрганизации"); ПечПредставлениеКонтрагента = ШапкаИПодвал.Получить("ПечПредставлениеКонтрагента"); ПечРуководитель = ШапкаИПодвал.Получить("ПечРуководитель"); ПечГлБухгалтер = ШапкаИПодвал.Получить("ПечГлБухгалтер"); ПечПредприниматель = ШапкаИПодвал.Получить("ПечПредприниматель"); ПечПредпринимательРеквизитыСвидетельства = ШапкаИПодвал.Получить("ПечПредпринимательРеквизитыСвидетельства"); Таб.ВывестиСекцию("Шапка"); Таб.ВывестиСекцию("ЗаголовокТаблицы"); // Печать строк документа. ///МнЧ.ВыбратьСтроки(); МнЧ.ВыбратьСтроки(); МнЧ.Выгрузить(ТабЧ); //ТабЧ.Свернуть("Номенклатура,Единица,Цена,СтавкаНДС,СтранаН,СтранаК,НомерГТД,ЕдиницаКод,АкцизЦена","Количество,Сумма,СуммаНП,СуммаНДС,ВсегоСНДС"); //ТабЧ.Свернуть("Номенклатура,Цена","Количество,Сумма,СуммаНП,СуммаНДС,ВсегоСНДС"); ТабЧ.Свернуть("Номенклатура, Единица, Цена, Акциз, СтавкаНДС, СтранаН, СтранаК, НомерГТД", "Количество, СуммаБезНДС, СуммаНП, СуммаНДС, Сумма"); //ТабЧ.ВыбратьСтроку(,"тест свертки"); //Возврат; ТабЧ.ВыбратьСтроки(); НомерСтроки = 0; ТоварКод = ""; НомерСтраницы = 1; СтрокНаСтранице = 24; СтрокШапки = 9; СтрокПодвала = 13; Если ТабЧ.КоличествоСтрок() <= 3 Тогда ПереноситьПоследнююСтроку = 0; Иначе ЦелыхСтраницСПодвалом = Цел((СтрокШапки + ТабЧ.КоличествоСтрок() + СтрокПодвала) / СтрокНаСтранице); ЦелыхСтраницБезПодвала = Цел((СтрокШапки + ТабЧ.КоличествоСтрок() - 1) / СтрокНаСтранице); ПереноситьПоследнююСтроку = ЦелыхСтраницСПодвалом - ЦелыхСтраницБезПодвала; КонецЕсли; Пока ТабЧ.ПолучитьСтроку() = 1 Цикл НомерСтроки = НомерСтроки + 1; ЦелаяСтраница = (СтрокШапки + НомерСтроки - 1) / (СтрокНаСтранице); Если (ЦелаяСтраница = Цел(ЦелаяСтраница)) или ((ПереноситьПоследнююСтроку = 1) и (НомерСтроки = ТабЧ.КоличествоСтрок())) Тогда Таб.НоваяСтраница(); НомерСтраницы = НомерСтраницы + 1; Таб.ВывестиСекцию("ЗаголовокТаблицы"); КонецЕсли; НомерСтраницыПрописью = ПолучитьСклонениеНомераСтраницы(НомерСтраницы); Если ТипЗначения(ТабЧ.Количество) = 1 Тогда ТабЧ.Количество = Формат(ТабЧ.Количество, ФорматКоличества); КонецЕсли; Наименование = СокрЛП(ТабЧ.Номенклатура); ЕдиницаИзмеренияКод = МнЧ.ЕдиницаКод; ЕдиницаИзмерения = ТабЧ.Единица; ПечКоличество = ?(ТабЧ.Количество=0, ПустойПоказатель, Формат(ТабЧ.Количество, ФорматКоличества)); ПечЦена = ?(ТабЧ.Цена=0, ПустойПоказатель, Формат(ТабЧ.Цена,"Ч15.2")); ПечСумма = ?(ТабЧ.Сумма=0, ПустойПоказатель, Формат(ТабЧ.Сумма,"Ч015.2")); ПечАкциз = МнЧ.АкцизЦена; ПредставлениеСтавкиНДС = ?(ПустоеЗначение(ТабЧ.СуммаНДС) = 1, "Без НДС", ТабЧ.СтавкаНДС); ПечНДС = ?(ПустоеЗначение(ТабЧ.СуммаНДС) = 1, ПустойПоказатель, ТабЧ.СуммаНДС); ПечВсего = ?(МнЧ.ВсегоСНДС=0, ПустойПоказатель, Формат(МнЧ.ВсегоСНДС,"Ч15.2")); СтранаКод = ТабЧ.СтранаК; СтранаН = ТабЧ.СтранаН; НомерГТД_Н = ТабЧ.НомерГТД; Таб.ВывестиСекцию("Строка"); КонецЦикла; ПечИтогБезНДС = ?(Итоги.Получить("ИтогСумма")=0,ПустойПоказатель, Формат(Итоги.Получить("ИтогСумма"),"Ч15.2")); ПечИтогНДС = ?(Итоги.Получить("ИтогСуммаНДС")=0,ПустойПоказатель, Формат(Итоги.Получить("ИтогСуммаНДС"),"Ч15.2")); ПечИтогВсего = ?(Итоги.Получить("ИтогВсегоСНДС")=0,ПустойПоказатель, Формат(Итоги.Получить("ИтогВсегоСНДС"),"Ч15.2")); Таб.ВывестиСекцию("Подвал"); Таб.ВывестиСекцию("ПодвалНакладной"); Если Устройство = 0 Тогда Таб.Опции(0, 0, 0, 0, "ОпцииПечатиУПД", "ОкноУПД"); Если глПолучитьПолномочие("РазрешитьРедактированиеТаблиц") = 0 Тогда Таб.Защита(1); Иначе Таб.Защита(0); КонецЕсли; Таб.ТолькоПросмотр(1); Таб.ПараметрыСтраницы(2,,,,,,,,,1,,); Таб.Показать("Печать универсального передаточного документа",""); Иначе Таб.Опции(0, 0, 0, 0, "ОпцииПечатиУПД", "ОкноУПД"); Таб.КоличествоЭкземпляров(КолвоКопий); Таб.Напечатать(0); КонецЕсли; КонецПроцедуры // ПечатьУПД() //****************************************************************************** // ПоКнопкеПечать() // // Параметры: // Нет // // Возвращаемое значение: // Нет // // Описание: // Процедура ПоКнопкеПечать() Если Док.Выбран() = 0 Тогда Предупреждение("Не выбран документ!", 60); Возврат; КонецЕсли; ПечатьУПД(Док); |
|||
47
Злопчинский
24.11.16
✎
12:41
|
(43) МНЧ - это ТЗ
|
|||
48
Масянька
24.11.16
✎
12:42
|
(45) Это не оправдание.
(46) Код этой процедуры давай - ПодготовитьМнЧУПД |
|||
49
asder117
24.11.16
✎
12:42
|
(47) извиняюсь да...ошибся
|
|||
50
Злопчинский
24.11.16
✎
12:42
|
(46) так, достали. давай скайп Zlopun bl ипароль на тим, будем смотреть.
а то ты так себя этим драчовым напильником до оргазма доведешь . а мну сегодня чтото лениво над техпроектом трудитсяю... |
|||
51
asder117
24.11.16
✎
12:43
|
(48)
Функция ПодготовитьМнЧУПД(Докум, ДокСФ, МнЧ, Итоги, ФорматКоличества) Если (ДокСФ.СФНаАванс = 1) И (ДокСФ.СчетНаОплату.Выбран() = 1) Тогда Возврат ПодготовитьМнЧПоСчетуНаОплатуУПД(Докум, ДокСФ, МнЧ, Итоги, ФорматКоличества); КонецЕсли; Итоги = СоздатьОбъект("СписокЗначений"); СоздатьСтруктуру(МнЧ); ИтогСумма = 0; КороткийПрочерк = "-"; ДокСФ.ВыбратьСтроки(); Пока ДокСФ.ПолучитьСтроку() = 1 Цикл МнЧ.НоваяСтрока(); ВывелиСтроку = 1; МнЧ.Номенклатура = СокрП(ДокСФ.Наименование); МнЧ.Единица = ДокСФ.Единица; Если ПустоеЗначение(МнЧ.Единица) = 0 Тогда Если МнЧ.Единица.Вид() = "Единицы" Тогда МнЧ.ЕдиницаКод = ДокСФ.Единица.ОКЕИ.Код; ИначеЕсли МнЧ.Единица.Вид() = "ОКЕИ" Тогда МнЧ.ЕдиницаКод = ДокСФ.Единица.Код; Иначе Конецесли; Иначе МнЧ.ЕдиницаКод = КороткийПрочерк; МнЧ.Единица = КороткийПрочерк; КонецЕсли; Если (МнЧ.Количество = 0) или (ДокСФ.СФНаАванс = 1) Тогда МнЧ.Количество = 0; Иначе МнЧ.Количество = ДокСФ.Количество; Конецесли; МнЧ.АкцизЦена = "без акциза"; Если (ДокСФ.СФНаАванс = 1) Тогда МнЧ.Цена = 0; МнЧ.Сумма = 0; МнЧ.АкцизЦена = КороткийПрочерк; МнЧ.СтавкаНДС = ?(ДокСФ.СтавкаНДС = Перечисление.СтавкиНДС.безНДС, "без НДС", Строка(ДокСФ.СтавкаНДС)); МнЧ.СуммаНДС = ?(ДокСФ.СтавкаНДС = Перечисление.СтавкиНДС.безНДС, КороткийПрочерк, глФРМ(ДокСФ.СуммаНДС,,,"")); МнЧ.ВсегоСНДС = ДокСФ.Сумма; МнЧ.СтранаН = КороткийПрочерк; МнЧ.СтранаК = КороткийПрочерк; МнЧ.НомерГТД = КороткийПрочерк; Иначе Если ПустоеЗначение(ДокСФ.Сумма) = 1 Тогда МнЧ.Цена = 0; МнЧ.Сумма = КороткийПрочерк; МнЧ.СтавкаНДС = "без НДС"; МнЧ.СуммаНДС = КороткийПрочерк; МнЧ.СуммаНП = КороткийПрочерк; МнЧ.ВсегоСНДС = КороткийПрочерк; Иначе МнЧ.Сумма = ДокСФ.Сумма - ДокСФ.СуммаНДС; ИтогСумма = ИтогСумма + ДокСФ.Сумма - ДокСФ.СуммаНДС; МнЧ.Цена = ?(ДокСФ.Количество = 0, 0, ДокСФ.Цена - ДокСФ.СуммаНДС / ДокСФ.Количество); МнЧ.СтавкаНДС = ?(ДокСФ.СтавкаНДС = Перечисление.СтавкиНДС.безНДС, "Без НДС", Строка(ДокСФ.СтавкаНДС)); МнЧ.СуммаНДС = ?(ДокСФ.СтавкаНДС = Перечисление.СтавкиНДС.безНДС, КороткийПрочерк, глФРМ(ДокСФ.СуммаНДС,,,"")); МнЧ.ВсегоСНДС = ДокСФ.Сумма; КонецЕсли; Если ПустоеЗначение(ДокСФ.СтранаПроисхождения)=1 Тогда МнЧ.СтранаН = "-"; МнЧ.СтранаК = "-"; //Если не указал страну, и указал Номер ГТД, то зачем-то это было нужно Если ПустаяСтрока(ДокСФ.ГТД) = 1 Тогда МнЧ.НомерГТД = "-"; Иначе МнЧ.НомерГТД = ДокСФ.ГТД; КонецЕсли; Иначе МнЧ.СтранаН = ДокСФ.СтранаПроисхождения; МнЧ.СтранаК = ДокСФ.СтранаПроисхождения.Код; // Если номер пустой, и указана страна, то позволяем потом вписать номер ГТД // в напечатанном документе руками МнЧ.НомерГТД = ДокСФ.ГТД; КонецЕсли; КонецЕсли; Если ТипЗначенияСтр(ДокСФ.Наименование) = "Справочник" Тогда Если ДокСФ.Наименование.Вид() = "Номенклатура" Тогда Если (ДокСФ.Наименование.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Услуга) или (ДокСФ.Наименование.ВидНоменклатуры = Перечисление.ВидыНоменклатуры.Работа) Тогда МнЧ.ЕдиницаКод = "-"; МнЧ.Единица = "-"; МнЧ.СтранаК = "-"; МнЧ.СтранаН = "-"; МнЧ.НомерГТД = "-"; КонецЕсли; КонецЕсли; КонецЕсли; Если ДокСФ.Количество - Цел(ДокСФ.Количество) > 0 Тогда ФорматКоличества = "Ч10.3"; КонецЕсли; КонецЦикла; Если ПустоеЗначение(ФорматКоличества) = 1 Тогда ФорматКоличества = "Ч10.0"; КонецЕсли; Итоги.ДобавитьЗначение(ИтогСумма, "ИтогСумма"); Итоги.ДобавитьЗначение(Докум.Итог("СуммаНДС"), "ИтогСуммаНДС"); Итоги.ДобавитьЗначение(Докум.Итог("Сумма"), "ИтогВсегоСНДС"); Итоги.ДобавитьЗначение(Докум.Итог("СуммаНП"), "ИтогСуммаНП"); Возврат ""; КонецФункции // ПодготовитьМнЧУПД() |
|||
52
Злопчинский
24.11.16
✎
12:43
|
привыкли, млин. молоко в магазинах покупать, никто корову подоить не умеет.. элои, млин
|
|||
53
Злопчинский
24.11.16
✎
12:44
|
(51) товарищ, тебе посоветовали - распечатать ТЗ которая вызывает у тебя вопросы и втыкать до посинения... лень?
|
|||
54
Масянька
24.11.16
✎
12:44
|
(51) После этой строки:
МнЧ.Цена = ?(ДокСФ.Количество = 0, 0, ДокСФ.Цена - ДокСФ.СуммаНДС / ДокСФ.Количество); выведи сообщалку и посмотри. |
|||
55
Масянька
24.11.16
✎
12:45
|
(52) А что такое "Корова"? :)))))))))))))
|
|||
56
asder117
24.11.16
✎
12:46
|
(50) отпишусь (54) попробую. если что что сделать. блин они же ручками набивают цену то
|
|||
57
aka AMIGO
24.11.16
✎
12:47
|
(54) (56) Ммм.. теперь понятно, почему цена 8.0500000009... Там деление стоит.
|
|||
58
aka AMIGO
24.11.16
✎
12:48
|
(57) т.е ИМХО - ты не ту цену суёшь в ТЗ
|
|||
59
Масянька
24.11.16
✎
12:49
|
(57) Кац предлагал сдаться (С) - я говорила :)
|
|||
60
Злопчинский
24.11.16
✎
12:52
|
(56) в упормянутой строке расчета цены после этой строки впиши
МнЧ.Цена = Окр(МнЧ.Цена,2,1); |
|||
61
aka AMIGO
24.11.16
✎
12:53
|
(59) Нее.. я про "гордого Варяга" помню :)
|
|||
62
Это_mike
24.11.16
✎
12:54
|
(36) юзай в клюшках прямые запросы - и привыкнешь.
|
|||
63
asder117
24.11.16
✎
12:58
|
(57) (60) я чувствую проще взять к черту саму табличную часть без подготовки мнч и свернуть
|
|||
64
asder117
24.11.16
✎
13:00
|
(60) ха-ха он в эту процедуру не заходит даже отладчиком
|
|||
65
Это_mike
24.11.16
✎
13:01
|
(64) за что тебя забанили в отладчике? колись, чего натворил...
|
|||
66
Масянька
24.11.16
✎
13:03
|
(64) Уверен? А в какую заходит?
|
|||
67
aka AMIGO
24.11.16
✎
13:04
|
(64) Поставь точку останова вот здесь, где стрелка на рисунке:
http://i.paste.pics/f72f73306d9d45791d820f543e2ac9a3.png |
|||
68
aka AMIGO
24.11.16
✎
13:05
|
(66) Видимо, в другую :)
|
|||
69
Злопчинский
24.11.16
✎
13:08
|
(63) не мучай гондурас.
стукайся в скайп |
|||
70
Злопчинский
24.11.16
✎
13:09
|
блин, подготовка МНЯ что в УПД что в СЧФ - одна и та же хрень по сути. я ее вообще вусмерть переписал.
там все прочто и прозрачно. это не снеговик где 100500 процедур одна другую выщзывают чтобы тривальное действие сделать |
|||
71
aka AMIGO
24.11.16
✎
13:10
|
(70) Лааадно, не переживай! все через это проходят :)
|
|||
72
Злопчинский
24.11.16
✎
13:11
|
Взвод ОМОНа разогнад демонстрацию мазохистов. И те, и другие получили удовлетворение.
|
|||
73
Злопчинский
24.11.16
✎
13:12
|
после строки оригинальной свертки вставить тот же код выбора строки из ТЗ и посмотреть... это все что надо чтобы вообщем понять ситуацию.
окошко просмотра маленькое, поэтому лучше распечатата ТЗ |
|||
74
Масянька
24.11.16
✎
13:13
|
(70) Аналогично. Только расчет цены все равно есть.
|
|||
75
Масянька
24.11.16
✎
13:15
|
+ (74) И соглашусь: в семерке косяк легче найти.
|
|||
76
asder117
24.11.16
✎
13:26
|
(67) звиняйте понял
|
|||
77
Злопчинский
24.11.16
✎
13:29
|
(75) в семерке гораздо меньше мест где косяки можно делать. поэтому семерка - это наука. а восьмерка - это магия. заместно ведь - большинство вопросов в восьмерке - чисто шаманские... какую комбинациб кнопок галок поставить методом тыка чтобы получить результат.. или заклинание об "очитить кэш!".. ;-)
|
|||
78
asder117
24.11.16
✎
13:30
|
(73) распечаталю смотрю. только цену не округляет
даже так сделал |
|||
79
Это_mike
24.11.16
✎
13:30
|
(75) это дело привычки...
хотя семерка сама проще и компактнее... |
|||
80
Это_mike
24.11.16
✎
13:31
|
(77) а может этот кэш пора вообще удалить? если он так всем мешает...
|
|||
81
vakor
24.11.16
✎
13:32
|
Что бы посмотреть что получается в ТЗ очень удобно создать несколько ТЗ на форме. И через .Выгрузить смотри содержимое исследуемой ТЗ на разных этапах. Даст фору любому отладчику: быстро и удобно
|
|||
82
Масянька
24.11.16
✎
13:34
|
(77) Программирование - это не магия.
|
|||
83
ADirks
24.11.16
✎
13:34
|
(81) вообще-то, для этого есть куча разных смотрелок ТЗ
не надо ничо на форму лепит, всё уже давно сделано |
|||
84
Масянька
24.11.16
✎
13:34
|
(81) А еще легче индексируемую таблицу. До и после свертки.
Вообще, сказка. |
|||
85
vakor
24.11.16
✎
13:35
|
я давно не пользовался .Свернуть но по моему не сгруппирует строки и числа...
попробуй свернуть любую левую ТЗ по числам |
|||
86
aka AMIGO
24.11.16
✎
13:35
|
(83) И так-же точно давно забыто..
|
|||
87
vakor
24.11.16
✎
13:37
|
(83) Какая смотрелка? давно их юзал? тыкнуть на форме ТЗ и писать в коде выгрузить? ты о чем???
|
|||
88
ADirks
24.11.16
✎
13:38
|
(87) например
http://catalog.mista.ru/public/15487/ |
|||
89
Масянька
24.11.16
✎
13:39
|
Не отвлекайте ТС.
(86) Почему к порядку не призываешь? :) |
|||
90
Злопчинский
24.11.16
✎
13:41
|
(83) например? дай полезность!
|
|||
91
Это_mike
24.11.16
✎
13:41
|
(82) " Любая достаточно развитая технология неотличима от магии"©А.Кларк
|
|||
92
Злопчинский
24.11.16
✎
13:41
|
на сотке - ветку прикрою... экономим топики для ТС
|
|||
93
vakor
24.11.16
✎
13:43
|
(88) фигня. не о чем. попробуй оба варианта и отпишись
так кто нибудь группировал цифры в ТЗ ? |
|||
94
Это_mike
24.11.16
✎
13:43
|
(92) а чего, количество тем стало ограниченным?
|
|||
95
asder117
24.11.16
✎
13:44
|
(60) Коллега... как говорил матроскин-Заработало стоило цену округлить блин. Но как все запутано и процедура другая отвечала за это ПодготовитьМнЧоснУПД(Докум, МнЧ, Итоги, ФорматКоличества)
Давно я так не ковырялся счас буду пробовать дальше |
|||
96
aka AMIGO
24.11.16
✎
13:44
|
(89) Дык.. сам увлекаюсь :)
(92) ты прав. Пост мой - последний здесь. ЗЫ. Просмотр ТЗ для отладки - среди меня довольно редкая операция. Я давно уже использую несколько строк кода, вполне хватает для анализа и исправлений Таб1 = СоздатьОбъект("Таблица"); Таб1.ИсходнаяТаблица("ТЗК"); Таб1.ВывестиСекцию("Заг|Нач"); Для х=1 По ТЗОст.КоличествоКолонок() Цикл Кол = ТЗОст.ПолучитьПараметрыКолонки(х); Таб1.ПрисоединитьСекцию("Заг|Кол"); КонецЦикла; ТЗОст.ВыбратьСтроки(); Пока ТЗОст.ПолучитьСтроку() = 1 Цикл Таб1.ВывестиСекцию("Стр|Нач"); Для х=1 По ТЗОст.КоличествоКолонок() Цикл СтрТЗ = ТЗОст.ПолучитьЗначение(ТЗОст.НомерСтроки,х); Таб1.ПрисоединитьСекцию("Стр|Кол"); КонецЦикла; КонецЦикла; Таб1.Показать("ТЗ"); |
|||
97
ADirks
24.11.16
✎
13:45
|
(90) кстати, даже для восьмёрки лепил, давно дело было...
http://catalog.mista.ru/public/104099/ (93) это мне? каво я должен ещё пробовать? |
|||
98
aka AMIGO
24.11.16
✎
13:47
|
||||
99
Злопчинский
24.11.16
✎
14:26
|
(93) я группировал, смотри на ИС Commoniter
|
|||
100
Злопчинский
24.11.16
✎
14:26
|
Автор проблему заборол.
Ветка закрыта. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |