| 
    
        
     
     | 
    
  | 
v7: Старый баг в таблице значений ? | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        AliAksA    
     12.06.18 
            ✎
    09:45 
 | 
         
        Ещё раз всем привет.
 
        В общем обнаружил, что при сортировке числового поля таблице значений в убывающем порядке, ноль почему-то оказывается на первой позиции. Это норм, или у меня с 1С-кой что-то? Заранее благодарю. Таблоид = СоздатьОбъект("ТаблицаЗначений"); Таблоид.НоваяКолонка("Значение", "Число", 5, 0); ... Таблоид.Значение = 0; Таблоид.Значение = 1; Таблоид.Значение = 2; Таблоид.Значение = 3; ... Таблоид.Сортировать("-Значение"); ... На выходе: 0, 3, 2, 1.  | 
|||
| 
    1
    
        AliAksA    
     12.06.18 
            ✎
    09:49 
 | 
         
        Нет, ну выход я конечно нашел, но некрасиво получается:
 
        Таблоид = СоздатьОбъект("ТаблицаЗначений"); Таблоид.НоваяКолонка("Значение", "Число", 5, 0); Таблоид.НоваяКолонка("Порядок", "Строка", 5); ... Таблоид.Значение = Х; Таблоид.Порядок = Формат(Таблоид.Значение, "Ч(0)5.0"); Таблоид.Сортировать("-Порядок");  | 
|||
| 
    2
    
        LienXo    
     12.06.18 
            ✎
    09:51 
 | 
         
        А разве не Сортировать("Значение-")?     
         | 
|||
| 
    3
    
        AliAksA    
     12.06.18 
            ✎
    09:55 
 | 
         
        (2) гыы, точно, огромное спасибо)
 
        хотя плюсик спереди норм срабатывает ... ТЕМА ЗАКРЫТА  | 
|||
| 
    4
    
        AliAksA    
     12.06.18 
            ✎
    10:07 
 | 
         
        Опять открываю тему:
 
        (2) спасает, если это не последнее поле сортировки - если после него отсортировать по другому полю такая же хрень (((  | 
|||
| 
    5
    
        AliAksA    
     12.06.18 
            ✎
    10:11 
 | 
         
        +(4) т.е.:
 
        Таблоид = СоздатьОбъект("ТаблицаЗначений"); Таблоид.НоваяКолонка("Значение", "Число", 5, 0); Таблоид.НоваяКолонка("Строчка", "Строка", 2); ... Таблоид.Значение = 0; Таблоид.Строка = "сс"; Таблоид.Значение = 1; Таблоид.Строка = "бб"; Таблоид.Значение = 2; Таблоид.Строка = "яя"; Таблоид.Значение = 3; Таблоид.Строка = "рр"; ... Таблоид.Сортировать("Значение-, Строка+"); ... На выходе: 0, 3, 2, 1.  | 
|||
| 
    6
    
        hhhh    
     12.06.18 
            ✎
    10:14 
 | 
         
        (4) сортируй по 2м полям. через запятую     
         | 
|||
| 
    7
    
        AliAksA    
     12.06.18 
            ✎
    10:18 
 | 
         
        (6) отсортировал - пример в (5) - можешь проверить лично, баг именно и возникает, когда есть последующая сортировка     
         | 
|||
| 
    8
    
        Кац    
     12.06.18 
            ✎
    10:29 
 | 
         
        Попробуй значение сделать тип строка     
         | 
|||
| 
    9
    
        AliAksA    
     12.06.18 
            ✎
    10:31 
 | 
         
        (8) для числовых значений? догадайся с трех раз что будет ...
 
        в (1) я описал, как вышел из ситуации - может ты это имел ввиду?  | 
|||
| 
    10
    
        hhhh    
     12.06.18 
            ✎
    10:45 
 | 
         
        (9) пример вручную сюда писал?
 
        Таблоид.НоваяКолонка("Строчка Таблоид.Сортировать("Значение-, Строка+"); куда "Строчка" девалась? давай нормальный пример.  | 
|||
| 
    11
    
        HawkEye    
     12.06.18 
            ✎
    10:48 
 | 
         
        (9) если уж с нулем проблемы, то не проще-ли делать Порядок = Х + 1?     
         | 
|||
| 
    12
    
        1Сергей    
     12.06.18 
            ✎
    10:51 
 | 
         
        Чет, не припомню я таких багов в клюшках     
         | 
|||
| 
    13
    
        AliAksA    
     12.06.18 
            ✎
    10:51 
 | 
         
        (10) в обработке тестил, менял - замени на строчка
 
        (11) как вариант, но сделал попроще - напрямую перевел число в в строчное форматированное значение с лидирующими нулями - тогда поле порядка не нужно (12) а попробуй потести :)  | 
|||
| 
    14
    
        1Сергей    
     12.06.18 
            ✎
    10:53 
 | 
         
        (13) поверю на слово. Нет клюшек под рукой     
         | 
|||
| 
    15
    
        AliAksA    
     12.06.18 
            ✎
    10:54 
 | 
         
        (15) Обработкой - вывод через сообщение     
         | 
|||
| 
    16
    
        AliAksA    
     12.06.18 
            ✎
    11:09 
 | 
         
        Не баг, а проблема с таблицей по-ходу, нижеприведенное работает норм (заменил имя таблицы значений):
 
        Процедура Сформировать() ОчиститьОкноСообщений(); Табличка = СоздатьОбъект("ТаблицаЗначений"); Табличка.НоваяКолонка("Значение", "Число", 5, 0); Табличка.НоваяКолонка("Строчка", "Строка", 2); Табличка.НоваяСтрока(); Табличка.Значение = 0; Табличка.Строчка = "нн"; Табличка.НоваяСтрока(); Табличка.Значение = 1; Табличка.Строчка = "бб"; Табличка.НоваяСтрока(); Табличка.Значение = 2; Табличка.Строчка = "бб"; Табличка.НоваяСтрока(); Табличка.Значение = 2; Табличка.Строчка = "яя"; Табличка.НоваяСтрока(); Табличка.Значение = 3; Табличка.Строчка = "яя"; Табличка.НоваяСтрока(); Табличка.Значение = 3; Табличка.Строчка = "рр"; Табличка.Сортировать("-Значение, +Строчка"); Табличка.ВыбратьСтроки(); Пока Табличка.ПолучитьСтроку() = 1 Цикл Сообщить("" + Табличка.НомерСтроки + " = " + Табличка.Значение + " (" + Табличка.Строчка + ")"); КонецЦикла; КонецПроцедуры В ОКНЕ СООБЩЕНИЙ: 1 = 3 (рр) 2 = 3 (яя) 3 = 2 (бб) 4 = 2 (яя) 5 = 1 (бб) 6 = 0 (нн) Уфффф, вообще крыша едет ...  | 
|||
| 
    17
    
        AliAksA    
     12.06.18 
            ✎
    11:57 
 | 
         
        Ниже приведен оригинал на котором споймал баг.
 
        На форме отчета реквизит НаДату типа "Дата" и флажки ПоСчету602, ПоСчету603, ПоСчету604, ПоСчету76. Внутри: Перем Таблоид, Печатник; Перем СумФормат, КолФормат; //************************************************************************************************************ Процедура ПриОткрытии() НаДату = ТекущаяДата(); СумФормат = "Ч-18.2.'"; КолФормат = "Ч-5.0"; Если ПоСчету602 + ПоСчету603 + ПоСчету604 + ПоСчету76 = 0 Тогда ПоСчету602 = 1; ПоСчету603 = 1; ПоСчету604 = 1; ПоСчету76 = 1; КонецЕсли; Таблоид = СоздатьОбъект("ТаблицаЗначений"); Таблоид.НоваяКолонка("Статус", "Строка"); Таблоид.НоваяКолонка("Счет", "Счет"); Таблоид.НоваяКолонка("Валюта", "Справочник.Валюты"); Таблоид.НоваяКолонка("Агент", "Справочник.Контрагенты"); Таблоид.НоваяКолонка("Докум", "Документ"); Таблоид.НоваяКолонка("Позиция"); Таблоид.НоваяКолонка("Сумма", "Число", 18, 2); Таблоид.НоваяКолонка("Срок", "Дата"); Таблоид.НоваяКолонка("Проср", "Число", 5, 0); //Таблоид.НоваяКолонка("Проср", "Строка", 5); КонецПроцедуры // ПриОткрытии() //************************************************************************************************************ Процедура ВыборкаДанных() Если ПоСчету602 + ПоСчету603 + ПоСчету604 + ПоСчету76 = 0 Тогда ПоСчету602 = 1; ПоСчету603 = 1; ПоСчету604 = 1; ПоСчету76 = 1; КонецЕсли; СписСчетов = СоздатьОбъект("СписокЗначений"); Если ПоСчету602 = 1 Тогда СписСчетов.ДобавитьЗначение(СчетПоКоду("60.2")); КонецЕсли; Если ПоСчету603 = 1 Тогда СписСчетов.ДобавитьЗначение(СчетПоКоду("60.3")); КонецЕсли; Если ПоСчету604 = 1 Тогда СписСчетов.ДобавитьЗначение(СчетПоКоду("60.4")); КонецЕсли; Если ПоСчету76 = 1 Тогда СписСчетов.ДобавитьЗначение(СчетПоКоду("76")); КонецЕсли; БухИтоги = СоздатьОбъект("БухгалтерскиеИтоги"); БухИтоги.ИспользоватьСубконто(ВидыСубконто.Контрагенты); БухИтоги.ИспользоватьСубконто(ВидыСубконто.Накл); БухИтоги.ВыполнитьЗапрос(НаДату, , СписСчетов, , , 1, , "СВ"); БухИтоги.ВыбратьСчета(); Пока БухИтоги.ПолучитьСчет() = 1 Цикл БухИтоги.ВыбратьВалюты(); Пока БухИтоги.ПолучитьВалюту() = 1 Цикл БухИтоги.ВыбратьСубконто(1); Пока БухИтоги.ПолучитьСубконто(1) = 1 Цикл БухИтоги.ВыбратьСубконто(2); Пока БухИтоги.ПолучитьСубконто(2) = 1 Цикл ВидДока = СокрЛП(БухИтоги.Субконто(2).Вид()); Если Найти(ВидДока, "Выписка") > 0 Тогда СрокОплаты = БухИтоги.Субконто(2).ДатаДок; Иначе СрокОплаты = глСрокОплаты(БухИтоги.Субконто(2)); КонецЕсли; Если СрокОплаты = Дата(0) Тогда Продолжить; КонецЕсли; ВалютаОплаты = ?(БухИтоги.СНК("В")=0, Константа.ОсновнаяВалюта, БухИтоги.Валюта); Если ПустоеЗначение(ВалютаОплаты) = 1 Тогда Продолжить; КонецЕсли; СуммаОплаты = ?(БухИтоги.СНК("В")=0, БухИтоги.СНК("С"), БухИтоги.СНК("В")); Если СуммаОплаты = 0 Тогда Продолжить; КонецЕсли; Таблоид.НоваяСтрока(); Таблоид.Статус = "Докум"; Таблоид.Счет = БухИтоги.Счет; Таблоид.Валюта = ВалютаОплаты; Таблоид.Агент = БухИтоги.Субконто(1); Таблоид.Докум = БухИтоги.Субконто(2); Таблоид.Позиция = глПозицияДока(Таблоид.Докум); Таблоид.Сумма = СуммаОплаты; Таблоид.Срок = СрокОплаты; Таблоид.Проср = Макс(НаДату-СрокОплаты, 0); //Таблоид.Проср = Формат(Макс(НаДату-СрокОплаты, 0), "Ч(0)5.0"); КонецЦикла; КонецЦикла; КонецЦикла; КонецЦикла; КонецПроцедуры // ВыборкаДанных() //************************************************************************************************************ Процедура ОбработкаДанных() Итоговая = СоздатьОбъект("ТаблицаЗначений"); Таблоид.Выгрузить(Итоговая); Итоговая.Свернуть("Счет, Валюта, Агент", "Сумма"); Итоговая.ВыбратьСтроки(); Пока Итоговая.ПолучитьСтроку() = 1 Цикл Таблоид.НоваяСтрока(); Таблоид.Статус = "Агент"; Таблоид.Счет = Итоговая.Счет; Таблоид.Валюта = Итоговая.Валюта; Таблоид.Агент = Итоговая.Агент; Таблоид.Сумма = Итоговая.Сумма; КонецЦикла; Итоговая.Свернуть("Счет, Валюта", "Сумма"); Итоговая.ВыбратьСтроки(); Пока Итоговая.ПолучитьСтроку() = 1 Цикл Таблоид.НоваяСтрока(); Таблоид.Статус = "Валюта"; Таблоид.Счет = Итоговая.Счет; Таблоид.Валюта = Итоговая.Валюта; Таблоид.Сумма = Итоговая.Сумма; КонецЦикла; Итоговая2 = СоздатьОбъект("ТаблицаЗначений"); Итоговая.Выгрузить(Итоговая2); Итоговая.Свернуть("Счет", "Сумма"); Итоговая.ВыбратьСтроки(); Пока Итоговая.ПолучитьСтроку() = 1 Цикл Таблоид.НоваяСтрока(); Таблоид.Статус = "Счет"; Таблоид.Счет = Итоговая.Счет; КонецЦикла; Таблоид.Сортировать("+Счет, +Валюта, +Агент, -Проср, +Позиция"); Таблоид.НоваяСтрока(); Таблоид.Статус = "Итоги"; Итоговая2.Свернуть("Валюта", "Сумма"); Итоговая2.ВыбратьСтроки(); Пока Итоговая2.ПолучитьСтроку() = 1 Цикл Таблоид.НоваяСтрока(); Таблоид.Статус = "ИтВал"; Таблоид.Валюта = Итоговая2.Валюта; Таблоид.Сумма = Итоговая2.Сумма; КонецЦикла; КонецПроцедуры // ОбработкаДанных() //************************************************************************************************************ Процедура ПечатьОтчета(перОбновить=0) Если перОбновить = 0 Тогда Печатник = СоздатьОбъект("Таблица"); Иначе Печатник.Очистить(); КонецЕсли; Печатник.ИсходнаяТаблица("Основная"); _Заглавие = "Кредитоская задолженность на " + Формат(НаДату, "Дддммгггг") + " г."; Расшифровка = "Обновить"; Печатник.ВывестиСекцию("Шапка"); Таблоид.ВыбратьСтроки(); Пока Таблоид.ПолучитьСтроку() = 1 Цикл _Счет = "По бух.счету «" + СокрЛП(Таблоид.Счет) + "»"; _Валюта = СокрЛП(Таблоид.Валюта.ПолнНаименование) + " (" + СокрЛП(Таблоид.Валюта.НаименованиеДляБанка) + "), код " + СокрЛП(Таблоид.Валюта.Код); _Контрагент = СокрЛП(Таблоид.Агент.Наименование); _Документ = глПредставДока(Таблоид.Докум); _Сумма = Формат(Таблоид.Сумма, СумФормат); _Срок = Формат(Таблоид.Срок, "Дддммгггг"); _ПрД = Формат(Число(Таблоид.Проср), КолФормат); Если Таблоид.Статус = "Валюта" Тогда Расшифровка = Таблоид.Валюта; ИначеЕсли Таблоид.Статус = "Агент" Тогда Расшифровка = Таблоид.Агент; ИначеЕсли Таблоид.Статус = "Докум" Тогда Расшифровка = Таблоид.Докум; КонецЕсли; Печатник.ВывестиСекцию(Таблоид.Статус); КонецЦикла; _Колонтитул = _Заглавие; Печатник.ПовторятьПриПечатиСтроки(5, 5); Печатник.ПараметрыСтраницы(1, , , 15, 7, 7, 7, 7, 7, 1); Печатник.КоличествоЭкземпляров(1); Печатник.ТолькоПросмотр(1); Печатник.Показать(_Колонтитул); КонецПроцедуры // ПечатьОтчета() //************************************************************************************************************ Процедура Сформировать(перОбновить=0) ОчиститьОкноСообщений(); Таблоид.УдалитьСтроки(); ВыборкаДанных(); Если Таблоид.КоличествоСтрок() = 0 Тогда Предупреждение("Данные по заданным условиям не обнаружены !"); СтатусВозврата(0); Возврат; КонецЕсли; ОбработкаДанных(); ПечатьОтчета(перОбновить); КонецПроцедуры // Сформировать() //************************************************************************************************************ Процедура ОбработкаЯчейкиТаблицы(перЗначение, перФлаг) Если перЗначение = "Обновить" Тогда Сформировать(1); ИначеЕсли ТипЗначенияСтр(перЗначение) = "Документ" Тогда ОткрытьФорму(перЗначение); ИначеЕсли ТипЗначенияСтр(перЗначение) = "Справочник" Тогда ОткрытьФорму(перЗначение); КонецЕсли; КонецПроцедуры // ОбработкаЯчейкиТаблицы(перЗначение, перФлаг) //************************************************************************************************************ в глобальнике: //************************************************************************************************************ Функция глПозицияДока(перКонтекст) Экспорт Перем Часов, Минут, Секунд; Если перКонтекст.Выбран() = 1 Тогда Возврат перКонтекст.ПолучитьПозицию(); Иначе ТекущееВремя(Часов, Минут, Секунд); Возврат СформироватьПозициюДокумента(перКонтекст.ДатаДок, Часов, Минут, Секунд); КонецЕсли; КонецФункции // глПозицияДока(перКонтекст) //************************************************************************************************************  | 
|||
| 
    18
    
        AliAksA    
     12.06.18 
            ✎
    12:01 
 | 
         
        +(17) переменные СумФормат и КолФормат задать можно ручками - форматы вывода циферей.
 
        Рабочий вариант заремован в двух местах. Не могу понять почему выходит такая байда, сори ...  | 
|||
| 
    19
    
        hhhh    
     12.06.18 
            ✎
    12:28 
 | 
         
        (18) сортируй просто числа. Не надо СумФормат и КолФормат - это дебилизм. После формата - это у тебя уже строки получаются, причем разной ширины. Сразу плучается "100" < "99"     
         | 
|||
| 
    20
    
        AliAksA    
     12.06.18 
            ✎
    12:32 
 | 
         
        (19) форматы используются только при выводе на печать - значения обрабатываются непосредственно перед передачей данных в секции таблицы     
         | 
|||
| 
    21
    
        NSSerg    
     12.06.18 
            ✎
    12:38 
 | 
         
        (17) У тебя в примере есть сортировки перед "Проср", уверен что они одинаковы? И в примере "-" перед названием колонки в сортировать.
 
        Ты можешь честно привести пример на котором глючит? У тебя в ветке нет ни одного рабочего примера подтверждающего (4)  | 
|||
| 
    22
    
        AliAksA    
     12.06.18 
            ✎
    12:42 
 | 
         
        (21) тестирующая обработка в (16) - работает норм, в (17) - рабочий отчет, на котором споймал баг, а перед этим я с середины теста копипастил     
         | 
|||
| 
    23
    
        AliAksA    
     12.06.18 
            ✎
    12:42 
 | 
         
        (21) сортировка в (17) - оригинал     
         | 
|||
| 
    24
    
        Попытка1С    
     12.06.18 
            ✎
    12:45 
 | 
         
        (23) А что тебя не устраивает в (16)?
 
        у тебя сортировка в обратном порядке по колонке Значение. выводиться 1 = 3 (рр) 2 = 3 (яя) 3 = 2 (бб) 4 = 2 (яя) 5 = 1 (бб) 6 = 0 (нн) первая цифра это номер сточки  | 
|||
| 
    25
    
        AliAksA    
     12.06.18 
            ✎
    12:47 
 | 
         
        (24) да (16) устраивает - это тест, а мне нужно чтобы (17) взлетел - вот он "косячит"     
         | 
|||
| 
    26
    
        NSSerg    
     12.06.18 
            ✎
    12:48 
 | 
         
        (22) В примере в (17) "-" перед "проср", а не после.
 
        И перед сортировкой по "Проср" есть еще сортировки. (23) В (4) Ты описываешь глюк с минусом после названия колонки. А примере у тебя минус перед. Ты издеваешься? Ты можешь выложить глючный пример демонстрирующий глюк (4)? Таблоид.Сортировать("+Счет, +Валюта, +Агент, -Проср, +Позиция"); в духе (4) должно выглядеть Таблоид.Сортировать("Проср-, Позиция+"); Ну и после сортировки у тебя строки добавляются.  | 
|||
| 
    27
    
        NSSerg    
     12.06.18 
            ✎
    12:49 
 | 
         
        (25) Ты хочешь чтоб тебе помогли, но не хочешь выложить код который глючит, и который ты сам описал в (4). Как же тебе помочь?     
         | 
|||
| 
    28
    
        Попытка1С    
     12.06.18 
            ✎
    12:50 
 | 
         
        Никаких глюков в ТЗ при сортировки нет, об этом было бы давно известно.     
         | 
|||
| 
    29
    
        NSSerg    
     12.06.18 
            ✎
    12:52 
 | 
         
        (28) Глюк при сортировке в ТЗ есть, и это давно известно.
 
        Только совершенно не такой.  | 
|||
| 
    30
    
        AliAksA    
     12.06.18 
            ✎
    12:53 
 | 
         
        (28) (29) щас дам результаты теста кода в (17)     
         | 
|||
| 
    31
    
        Попытка1С    
     12.06.18 
            ✎
    12:53 
 | 
         
        (29) если ты про метод КоличествоСтрок() то я в курсе. но к (0) да это не относиться.     
         | 
|||
| 
    32
    
        NSSerg    
     12.06.18 
            ✎
    12:55 
 | 
         
        (30) Зачем нужны результаты кода в (17)?
 
        (31) Он сам не понимает что делает. На форуме пишет одно, в коде другое. Сам себя путает, и тех кто пытается помочь тоже.  | 
|||
| 
    33
    
        AliAksA    
     12.06.18 
            ✎
    13:03 
 | 
         
        (31) (32) все спасибо, нашел - проблема не в таблоиде, а в секциях вывода (Печатник)
 
        в процедуре печати вставил код: Если Таблоид.Статус = "Докум" Тогда Сообщить("" + Таблоид.Счет + " - " + Таблоид.Валюта.Код + " - " + СокрЛП(Таблоид.Агент.ИНН) + " = " + Таблоид.Проср + " | " + Таблоид.Позиция); КонецЕсли; он показал все норм, а вот на печатной форме - хрень: TRADELINE EUROPE L.P. 13'235.00 белорусский рубль (BYN), код 933 826'259.62 (Д) ОАО " Хозтовары" Гомель 345.84 Поступление материалов № 2033665 от 31.05.2018 г. 345.84 30.07.2018 - Поступление материалов № 3235913 от 06.02.2018 г. 0.60 26.02.2018 106 Поступление материалов № 3235967 от 27.02.2018 г. 2.02 19.03.2018 85 БелЦХТ, ЧТУП, г. Могилев 2.62 Поступление материалов № 4796896 от 26.04.2018 г. 40.00 26.04.2018 47 ГЛХУ "Пинский лесхоз", г. Пинск 40.00  | 
|||
| 
    34
    
        AliAksA    
     12.06.18 
            ✎
    13:04 
 | 
         
        +(33) спецом скопипастил кусок выходной таблицы - первый раз такое вижу (((     
         | 
|||
| 
    35
    
        AliAksA    
     12.06.18 
            ✎
    13:05 
 | 
         
        +(33) вот ещё для примера: см. ООО "БЕЛКРАТХИМ":
 
        Поступление материалов № 2558561 от 31.05.2018 г. 27.48 31.05.2018 12 Поступление материалов № 3366013 от 06.06.2018 г. 27.48 06.06.2018 6 ООО "Аквафортез" 137.40 Поступление материалов № 4926073 от 25.05.2018 г. 1'366.20 25.05.2018 18 Поступление материалов № 4926082 от 31.05.2018 г. 1'611.60 31.05.2018 12 Поступление материалов № 4926056 от 16.05.2018 г. 369.32 05.06.2018 7 ООО "БЕЛКРАТХИМ" 5'457.02 Поступление материалов № 4926072 от 25.05.2018 г. 847.20 14.06.2018 - Поступление материалов № 4926083 от 31.05.2018 г. 1'262.70 20.06.2018 - Поступление материалов № 3816664 от 26.05.2018 г. 4'549.53 26.05.2018 17 Поступление материалов № 3816831 от 04.06.2018 г. 3'265.49 04.06.2018 8 ООО "Белхимсеть" 7'815.02 Поступление материалов № 0741152 от 11.10.2017 г. 140.33 11.10.2017 244 ООО "ВодаХит" 140.33 Поступление материалов № 0789994 от 27.04.2018 г. 21'041.18 17.05.2018 26 Поступление материалов № 0789992 от 21.04.2018 г. 21'490.18 21.05.2018 22 Поступление материалов № 1453351 от 11.05.2018 г. 10'615.92 10.06.2018 2 ООО "МалиГрупп" 53'147.28  | 
|||
| 
    36
    
        AliAksA    
     12.06.18 
            ✎
    13:07 
 | 
         
        а вот окно сообщений показывает что сортировка в норме:
 
        60.2 - 933 - 200041474 = 45 | #20180329 345580000 489855 60.2 - 933 - 200041474 = 16 | #20180427 605380000 492941 60.2 - 933 - 200041474 = 0 | #20180601 461000000 496225 60.2 - 933 - 190990345 = 258 | #20170927 404150000 473079 60.2 - 933 - 190990345 = 175 | #20171219 767390000 480444 60.2 - 933 - 300208810 = 19 | #20180524 595110000 495531 60.2 - 933 - 300208810 = 0 | #20180606 390200000 496634 60.2 - 933 - 100947766 = 223 | #20171101 566130000 475328 60.2 - 933 - 191285066 = 206 | #20171019 603560000 473991 60.2 - 933 - 191285066 = 206 | #20171019 603660000 473993 60.2 - 933 - 290987477 = 45 | #20180428 788230000 493165 60.2 - 933 - 290987477 = 45 | #20180428 788330000 493166 60.2 - 933 - 290987477 = 12 | #20180531 508440000 496124  | 
|||
| 
    37
    
        Попытка1С    
     12.06.18 
            ✎
    13:08 
 | 
         
        моксель сам ничего не сортирует, как выводишь так и будет.     
         | 
|||
| 
    38
    
        AliAksA    
     12.06.18 
            ✎
    13:10 
 | 
         
        (37) и тем неменее - если подскажешь как и чем - сфоткаю экран     
         | 
|||
| 
    39
    
        NSSerg    
     12.06.18 
            ✎
    13:11 
 | 
         
        Ни малейшей связи между (35) и (36) не вижу.
 
        Почему ты считаешь что там хрень?  | 
|||
| 
    40
    
        NSSerg    
     12.06.18 
            ✎
    13:11 
 | 
         
        (38) Ты считаешь что в (35) что-то не так. Что конкретно тебя в (35) не устраивает?     
         | 
|||
| 
    41
    
        AliAksA    
     12.06.18 
            ✎
    13:14 
 | 
         
        (39) (40) - в (33) и (35) - копипаст с таблицы вывода на печать - там прочерки (=0) лидируют!!!
 
        а в (36) результат вставки в процедуру печати: Таблоид.ВыбратьСтроки(); Пока Таблоид.ПолучитьСтроку() = 1 Цикл Если Таблоид.Статус = "Докум" Тогда Сообщить("" + Таблоид.Счет + " - " + Таблоид.Валюта.Код + " - " + СокрЛП(Таблоид.Агент.ИНН) + " = " + Таблоид.Проср + " | " + Таблоид.Позиция); КонецЕсли; _Счет = "По бух.счету «" + СокрЛП(Таблоид.Счет) + "»"; _Валюта = СокрЛП(Таблоид.Валюта.ПолнНаименование) + " (" + СокрЛП(Таблоид.Валюта.НаименованиеДляБанка) + "), код " + СокрЛП(Таблоид.Валюта.Код); _Контрагент = СокрЛП(Таблоид.Агент.Наименование); _Документ = глПредставДока(Таблоид.Докум); _Сумма = Формат(Таблоид.Сумма, СумФормат); _Срок = Формат(Таблоид.Срок, "Дддммгггг"); _ПрД = Формат(Число(Таблоид.Проср), КолФормат); Если Таблоид.Статус = "Валюта" Тогда Расшифровка = Таблоид.Валюта; ИначеЕсли Таблоид.Статус = "Агент" Тогда Расшифровка = Таблоид.Агент; ИначеЕсли Таблоид.Статус = "Докум" Тогда Расшифровка = Таблоид.Докум; КонецЕсли; Печатник.ВывестиСекцию(Таблоид.Статус); КонецЦикла;  | 
|||
| 
    42
    
        AliAksA    
     12.06.18 
            ✎
    13:15 
 | 
         
        +(41) вывод в окно сообщений идет параллельно:
 
        Пока Таблоид.ПолучитьСтроку() = 1 Цикл Если Таблоид.Статус = "Докум" Тогда Сообщить("" + Таблоид.Счет + " - " + Таблоид.Валюта.Код + " - " + СокрЛП(Таблоид.Агент.ИНН) + " = " + Таблоид.Проср + " | " + Таблоид.Позиция); КонецЕсли; результат - разный  | 
|||
| 
    43
    
        MWWRuza    
     гуру 
    12.06.18 
            ✎
    13:17 
 | 
         
        (38)Ни чем. Стандартные средства Windows. Кнопка PrtScrn, открываете пайнт, вставить из буфера, вырезать нужный кусок, создать файл, вставить вырезанное, сохранить как JPG.
 
        Это если действительно ничего нет. А так, куча программ и сервисов существует для скриншотов...  | 
|||
| 
    44
    
        AliAksA    
     12.06.18 
            ✎
    13:22 
 | 
         
        Ещё раз после того как укоротил код:
 
        Таблоид.ВыбратьСтроки(); Пока Таблоид.ПолучитьСтроку() = 1 Цикл Если Таблоид.Статус = "Докум" Тогда Сообщить("" + Таблоид.Счет + " - " + Таблоид.Валюта.Код + " - " + СокрЛП(Таблоид.Агент.ИНН) + " = " + Таблоид.Проср); КонецЕсли; _Счет = "По бух.счету «" + СокрЛП(Таблоид.Счет) + "»"; _Валюта = СокрЛП(Таблоид.Валюта.ПолнНаименование) + " (" + СокрЛП(Таблоид.Валюта.НаименованиеДляБанка) + "), код " + СокрЛП(Таблоид.Валюта.Код); _Контрагент = СокрЛП(Таблоид.Агент.Наименование); _Документ = глПредставДока(Таблоид.Докум); _Сумма = Формат(Таблоид.Сумма, СумФормат); _Срок = Формат(Таблоид.Срок, "Дддммгггг"); _ПрД = Формат(Число(Таблоид.Проср), КолФормат); в окне сообщений: 60.4 - 933 - 200297153 = 47 60.4 - 933 - 200297153 = 16 60.4 - 933 - 200297153 = 15 60.4 - 933 - 200297153 = 12 60.4 - 933 - 200297153 = 12 60.4 - 933 - 200297153 = 12 60.4 - 933 - 200297153 = 0 60.4 - 933 - 200548726 = 132 60.4 - 933 - 200062076 = 85 60.4 - 933 - 200062076 = 57 60.4 - 933 - 200062076 = 25 60.4 - 933 - 200062076 = 0 60.4 - 933 - 191021390 = 829 60.4 - 933 - 191021390 = 802 60.4 - 933 - 191021390 = 802 60.4 - 933 - 190510854 = 371 как видим - все норм - нули по одному ИНН - на последней позиции а на печатной форме - хрень!!! (см. ниже) Услуги сторонних организаций № 352-6 от 31.05.2018 г. 16.51 31.05.2018 12 Услуги сторонних организаций № 342-6 от 31.05.2018 г. 271.62 31.05.2018 12 ЖКХ г. Пинска 1'181.92 Услуги сторонних организаций № 297-27 от 28.05.2018 г. 256.50 27.06.2018 - Банковская выписка № 000141 от 31.01.2018 г. 3'788.33 31.01.2018 132 ЗАО " Амкодор-Пинск" 3'788.33 Услуги сторонних организаций № 48 от 22.02.2018 г. 269.89 19.03.2018 85 Услуги сторонних организаций № 140 от 22.03.2018 г. 296.96 16.04.2018 57 Услуги сторонних организаций № 238 от 23.04.2018 г. 296.96 18.05.2018 25 ЗАО "Траст-Запад" 1'140.77 Услуги сторонних организаций № 334 от 21.05.2018 г. 276.96 15.06.2018 - Услуги сторонних организаций № 35 от 05.03.2016 г. 90.00 05.03.2016 829 Услуги сторонних организаций № 51 от 01.04.2016 г. 792.00 01.04.2016 802 Услуги сторонних организаций № 44 от 01.04.2016 г. 550.00 01.04.2016 802 ЗАО "Центр промышленной оценки" 1'432.00 Банковская выписка № 000518 от 06.06.2017 г. 44.00 06.06.2017 371 ЗАО Гудвилл Инвест 44.00 Услуги сторонних организаций № 02/18 от 16.01.2018 г. 262.00 23.01.2018 140  | 
|||
| 
    45
    
        Вася Теркин    
     12.06.18 
            ✎
    13:22 
 | 
         
        (0) Отличный вброс. Пятница, это ты?     
         | 
|||
| 
    46
    
        Вася Теркин    
     12.06.18 
            ✎
    13:23 
 | 
         
        Больше кода!!! Или ада?     
         | 
|||
| 
    47
    
        NSSerg    
     12.06.18 
            ✎
    13:28 
 | 
         
        в (44) во втором блоке последняя строчка 140 дней.
 
        В первом блоке нет такого значения.  | 
|||
| 
    48
    
        NSSerg    
     12.06.18 
            ✎
    13:29 
 | 
         
        В первом блоке 16 строк. Во втором 13.
 
        (44) Ты издеваешься?  | 
|||
| 
    49
    
        ptiz    
     12.06.18 
            ✎
    13:31 
 | 
         
        Вот что бывает, когда убедил себя в том, чего нет.     
         | 
|||
| 
    50
    
        AliAksA    
     12.06.18 
            ✎
    13:32 
 | 
         
        (47) ага заметил, дописал тест - сортировка по агенту нарушена ((( как её вылечить?
 
        вот копипаст окна сообщений - тут наглядно видно как последняя запись по контрагенту к следующему попадает: 60.4 - 933 - 200297153 = 12 60.4 - 933 - 200297153 = 12 60.4 - 933 - 200297153 = 12 ЖКХ г. Пинска - 200297153 60.4 - 933 - 200297153 = 0 60.4 - 933 - 200548726 = 132 ЗАО " Амкодор-Пинск" - 200548726 60.4 - 933 - 200062076 = 85 60.4 - 933 - 200062076 = 57 60.4 - 933 - 200062076 = 25 ЗАО "Траст-Запад" - 200062076 60.4 - 933 - 200062076 = 0 60.4 - 933 - 191021390 = 829 60.4 - 933 - 191021390 = 802 60.4 - 933 - 191021390 = 802 ЗАО "Центр промышленной оценки" - 191021390 60.4 - 933 - 190510854 = 371 ЗАО Гудвилл Инвест - 190510854  | 
|||
| 
    51
    
        NSSerg    
     12.06.18 
            ✎
    13:32 
 | 
         
        +(48)+(47)
 
        В печатной форме 13 строк с документами, в окне сообщений 16. В печатной форме последняя строчка 140 дней. В овне сообщений нет такого значения. (44) Проблема не в сортировке. (50) Это не объясняет (47) и (48)  | 
|||
| 
    52
    
        AliAksA    
     12.06.18 
            ✎
    13:34 
 | 
         
        (51) смотри (50) - там наглядно видно как нарушена сортировка - общая запись по контрагенту внутрь попадает     
         | 
|||
| 
    53
    
        AliAksA    
     12.06.18 
            ✎
    13:34 
 | 
         
        +(52) ориентируйся по ИНН     
         | 
|||
| 
    54
    
        catena    
     12.06.18 
            ✎
    13:35 
 | 
         
        (52)А где код на вывод "общая запись по контрагенту"?     
         | 
|||
| 
    55
    
        AliAksA    
     12.06.18 
            ✎
    13:37 
 | 
         
        (51) все понял - в строке заглавной контрагента тоже нулевое значение у Проср)
 
        (54) в процедуре печати: //************************************************************************************************************ Процедура ПечатьОтчета(перОбновить=0) Если перОбновить = 0 Тогда Печатник = СоздатьОбъект("Таблица"); Иначе Печатник.Очистить(); КонецЕсли; Печатник.ИсходнаяТаблица("Основная"); _Заглавие = "Кредитоская задолженность на " + Формат(НаДату, "Дддммгггг") + " г."; Расшифровка = "Обновить"; Печатник.ВывестиСекцию("Шапка"); Таблоид.ВыбратьСтроки(); Пока Таблоид.ПолучитьСтроку() = 1 Цикл Если Таблоид.Статус = "Докум" Тогда Сообщить("" + Таблоид.Счет + " - " + Таблоид.Валюта.Код + " - " + СокрЛП(Таблоид.Агент.ИНН) + " = " + Таблоид.Проср); ИначеЕсли Таблоид.Статус = "Агент" Тогда Сообщить("" + Таблоид.Агент + " - " + СокрЛП(Таблоид.Агент.ИНН)); КонецЕсли; _Счет = "По бух.счету «" + СокрЛП(Таблоид.Счет) + "»"; _Валюта = СокрЛП(Таблоид.Валюта.ПолнНаименование) + " (" + СокрЛП(Таблоид.Валюта.НаименованиеДляБанка) + "), код " + СокрЛП(Таблоид.Валюта.Код); _Контрагент = СокрЛП(Таблоид.Агент.Наименование); _Документ = глПредставДока(Таблоид.Докум); _Сумма = Формат(Таблоид.Сумма, СумФормат); _Срок = Формат(Таблоид.Срок, "Дддммгггг"); _ПрД = Формат(Число(Таблоид.Проср), КолФормат);  | 
|||
| 
    56
    
        AliAksA    
     12.06.18 
            ✎
    13:38 
 | 
         
        Щас буду репу чесать, как сделать доп.сортировку     
         | 
|||
| 
    57
    
        NSSerg    
     12.06.18 
            ✎
    13:38 
 | 
         
        (52) А что ты хотел? Статус присваиваешь до сортировки, потом сортируешь. Строчка с статусом уходит в середину записей по агенту.
 
        (52) Еще раз спросить? Объясни (47) и (48) Зачем ты вводишь в заблуждение? Откуда у тебя взялось в печатной форме значение дней просрочки которого нет в окне сообщений? Почему разное количество строк?  | 
|||
| 
    58
    
        AliAksA    
     12.06.18 
            ✎
    13:41 
 | 
         
        (57) ВСЕ - ВЗЛЕТЕЛО !!!
 
        надо было так: Таблоид.Сортировать("+Счет, +Валюта, +Агент, +Статус, -Проср, +Позиция"); результат из окна сообщений: ЖКХ г. Пинска - 200297153 60.4 - 933 - 200297153 = 47 60.4 - 933 - 200297153 = 16 60.4 - 933 - 200297153 = 15 60.4 - 933 - 200297153 = 12 60.4 - 933 - 200297153 = 12 60.4 - 933 - 200297153 = 12 60.4 - 933 - 200297153 = 0 ЗАО " Амкодор-Пинск" - 200548726 60.4 - 933 - 200548726 = 132 ЗАО "Траст-Запад" - 200062076 60.4 - 933 - 200062076 = 85 60.4 - 933 - 200062076 = 57 60.4 - 933 - 200062076 = 25 60.4 - 933 - 200062076 = 0 ВСЕМ ОГРОМНОЕ СПАСИБО !!!  | 
|||
| 
    59
    
        NSSerg    
     12.06.18 
            ✎
    13:41 
 | 
         
        И в (0) и в (5) - написано то, чего не было в твоих тестах.
 
        в (44) тоже написано не то что выдал твой тест. Зачем ты это делаешь?  | 
|||
| 
    60
    
        Злопчинский    
     12.06.18 
            ✎
    13:43 
 | 
         
        Может зае-банить пользователя за неадекватность?     
         | 
|||
| 
    61
    
        AliAksA    
     12.06.18 
            ✎
    13:43 
 | 
         
        (59) я сам не знал откуда ноги растут - как мог - так и описал (
 
        отдельное спасибо  | 
|||
| 
    62
    
        AliAksA    
     12.06.18 
            ✎
    13:44 
 | 
         
        (59) в (44) - реальный копипаст из окна вывода, просто скопировал немного разные куски - отчет слишком большой - задолбался бы искать одинаковые куски - вот и разница     
         | 
|||
| 
    63
    
        NSSerg    
     12.06.18 
            ✎
    13:50 
 | 
         
        (62) понятно.     
         | 
|||
| 
    64
    
        AliAksA    
     12.06.18 
            ✎
    13:52 
 | 
         
        (63) сори, просто раньше не требовалось сортировки по просрочке - все работало норм, а тут добавил - быстро надо было - ну чуть крыша и не поехала поэтому и написал с вопросом "Баг ли это ?"     
         | 
|||
| 
    65
    
        Злопчинский    
     12.06.18 
            ✎
    14:18 
 | 
         
        Это что, я раз два часа охреневал, не мог понять почему предопределенная ПриОткрытии(), не отрабатывает.. уже собирался на 8-ку перейти... Потом - перед тем как на форум писать - мы ж должны пил не морочить тупой херней - прозрел...
 
        Функция ПриОткрытии() //траляля КонецФункции ..она и не отрабатывает.. ржал минут 15 над собой  | 
|||
| 
    66
    
        AliAksA    
     12.06.18 
            ✎
    14:22 
 | 
         
        (65) да всяко бывает - я точку с запятой в запросе после строки не поставил - целый день искал почему запрос не отрабатывает)))     
         | 
|||
| 
    67
    
        NSSerg    
     12.06.18 
            ✎
    14:26 
 | 
         
        (65) Буквально на днях провозился кучу времени.
 
        в глДействия(Конт, СписокДействий) По действию во внешнюю обработку передавался конт.Текущийдокумент() Добавил действие которое работает с контекстом, а не с записанным документом. Копированием двух строк. В обработке обрабатывается ТЧ, и загружается обратно в документ. Поменял конт.Текущийдокумент() на конт. А оно не работает. Ни в какую. Что оказалось - действий много, и они очень похожи Если Действие = "Отчет о движениях документа" Тогда глСформироватьДвиженияДокумента(Конт); иначеесли Действие="Прослушать разговор" тогда ОткрытьФорму("Отчет",конт,КаталогИБ() + "\ExtForms\Прослушать разговор.ert"); иначеесли Действие="История изменений" тогда ОткрытьФорму("Обработка.ПоказатьИсториюИзменений",Конт); И далее в таком духе куча строк. Час убил. Оказалось не в той строке конт.Текущийдокумент() поменял на конт.  | 
|||
| 
    68
    
        Злопчинский    
     12.06.18 
            ✎
    14:30 
 | 
         
        Действие="Прослушать разговор"
 
        .. это хорошо, что ты дальше раскладку по глДействия не привел... Судя по всему у тебя там есть Действие="Направить лампу в лицо" и прочие проистекающие...  | 
|||
| 
    69
    
        Злопчинский    
     12.06.18 
            ✎
    14:31 
 | 
         
        (67) я думал, ты уже на 8-ку давно перешел...     
         | 
|||
| 
    70
    
        NSSerg    
     12.06.18 
            ✎
    14:32 
 | 
         
        (69) У меня много баз. И те и те.     
         | 
|||
| 
    71
    
        Злопчинский    
     12.06.18 
            ✎
    14:33 
 | 
         
        (70) Программист-бетонщик?     
         | 
|||
| 
    72
    
        NSSerg    
     12.06.18 
            ✎
    14:36 
 | 
         
        (68) ИМХО надо или на справочник переделать, либо на *.efd.
 
        У нас привязка разговора оператора к документам сделана. Из заявки можно прослушать разговор оператора принявшего заявку по телефону. Запись видео тоже была с привязкой к документу взвешивания, но не прижилось. (71) Не вижу ни малейшей разницы на чем писать.  | 
|||
| 
    73
    
        МихаилМ    
     12.06.18 
            ✎
    15:45 
 | 
         
        в 1с77 нужно сортировать со звездочкой по внутреннему представлению.     
         | 
|||
| 
    74
    
        NSSerg    
     12.06.18 
            ✎
    15:51 
 | 
         
        (73) ИМХО лучше уж Тогда Агент+,Агент*
 
        Чтоб по алфавиту, а среди дублей по внутреннему представлению  | 
|||
| 
    75
    
        Злопчинский    
     12.06.18 
            ✎
    16:01 
 | 
         
        (73) (74) угу, я раз так нарвался, по недомыслию... Сортировал по договорам, а там везде "Основной договор"...     
         | 
|||
| 
    76
    
        Попытка1С    
     12.06.18 
            ✎
    16:10 
 | 
         
        (65) А в чем тут трабла..?     
         | 
|||
| 
    77
    
        Попытка1С    
     12.06.18 
            ✎
    16:10 
 | 
         
        Нет тела функции или чего?     
         | 
|||
| 
    78
    
        NSSerg    
     12.06.18 
            ✎
    16:11 
 | 
         
        (77) Процедура     
         | 
|||
| 
    79
    
        Попытка1С    
     12.06.18 
            ✎
    16:12 
 | 
         
        бгг)     
         | 
|||
| 
    80
    
        Попытка1С    
     12.06.18 
            ✎
    16:13 
 | 
         
        У меня было по другому, не мог понять почему не отрабатывает
 
        Процедура ПриОкрытии() //труляля КонецПроцедуры  | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |