|   |   | 
| 
 | Что есть кроме массива? Например, очередь, стек... | ☑ | ||
|---|---|---|---|---|
| 0
    
        vermazar 03.08.16✎ 15:01 | 
        Есть ли очередь, стек?     | |||
| 40
    
        detec 03.08.16✎ 15:56 | 
        (0 Несколько лет программировал на 1С 8 - ни разу не пришлось задумываться о дополнительных структурах данных, на которые принято рассчитывать в других языках. Мой совет - не парься по этому поводу.
 З.Ы. Сейчас практикую Java, и эти структуры данных применяю только во всяких дебильных задачках на т.н. "знание основ". | |||
| 41
    
        Кирпич 03.08.16✎ 15:57 | 
        (40) да чо ты так серьёзно сразу. просто потрепались. дятла поймали...     | |||
| 42
    
        Это_mike 03.08.16✎ 15:59 | 
        (40) ну вот задачка на знание основ.
 Сложная анкета. Нужна идея как сделать. | |||
| 43
    
        Кирпич 03.08.16✎ 15:59 | 
        +(41) они раньше на ООП и goto слетались. теперь и на стек хорошо идут     | |||
| 44
    
        Serginio1 03.08.16✎ 16:00 | 
        (31) Есть разница между добавить и вставить?     | |||
| 45
    
        PR 03.08.16✎ 17:00 | 
        (44) Эээ... вообще есть.
 Добавить в конец добавляет, а вставить в заданную позицию вставляет. | |||
| 46
    
        Serginio1 03.08.16✎ 17:15 | 
        (45) Как хорошо сдесь сказато 
 http://www.cyberforum.ru/cpp-beginners/thread436303.html Стек это стопка книг. Читать-писать можно только в верней. Сняли книгу - она пропала, все что в ней было написано - недоступно. https://ru.wikipedia.org/wiki/Стек | |||
| 47
    
        Serginio1 03.08.16✎ 17:17 | 
        А вот, что предлагается в 16 это взять книгу снизу и потратить усилия пропорциональных количеству книг     | |||
| 48
    
        Mauser 03.08.16✎ 17:20 | 
        (47) Надо создать Врап = Новый ComОбьект и использовать ъТип ?     | |||
| 49
    
        Tateossian 03.08.16✎ 17:26 | 
        (40) А мне очень нравится битовый набор. Часто нужна такая коллекция. Что применять вместо?     | |||
| 50
    
        Garykom гуру 03.08.16✎ 17:27 | 
        (46) А терь реализовать плиз очередь на стеке(ах)     | |||
| 51
    
        Garykom гуру 03.08.16✎ 17:27 | 
        (49) Число, строку, ТЗ     | |||
| 52
    
        Tateossian 03.08.16✎ 17:28 | 
        (16) Ужасная реализация у вас обоих. Это СТАТИЧНЫЕ функции,
 то есть оптимально создавать как обработку, а потом вызвать метод, типа Стек.Положить(1), где стек - Обработки.Стек.Создать(); | |||
| 53
    
        Tateossian 03.08.16✎ 17:28 | 
        (51) Это же адовый изврат тормозной (по сабжу юзаю соответствие обычно). Строки только в крайнем случае.     | |||
| 54
    
        Кирпич 03.08.16✎ 17:33 | 
        (47) это если в компиляторе каком нибудь, но не в 1С. В 1С метод (16) будет работать с такой же скоростью как и (8), и даже быстрее, если стек маленький. Ибо время тратится на Г = М.ВГраница();
 Если в такой стек запихнуть 100000 значений, то (16) будет гораздо тормознее, чем (8). ибо будет массив постоянно копироваться. | |||
| 55
    
        Garykom гуру 03.08.16✎ 17:34 | 
        (53) Соответствие память жрет как не в себя, если большой сильно набор даже гигов не хватит ))     | |||
| 56
    
        Tateossian 03.08.16✎ 17:35 | 
        (55) Мне тут важнее быстродействие. А по памяти - да, так и есть.     | |||
| 57
    
        H A D G E H O G s 03.08.16✎ 17:36 | 
        (23) Откуда инфа про вектор массива?     | |||
| 58
    
        Mauser 03.08.16✎ 17:37 | 
        (52) Миссионер от ООП?     | |||
| 59
    
        Garykom гуру 03.08.16✎ 17:37 | 
        (57) Реверс инженеринг     | |||
| 60
    
        H A D G E H O G s 03.08.16✎ 17:39 | 
        (59) Был бы вектором - не было бы деградации быстродействия чтения при увеличении размера и была бы деградация при добавлении элементов, а не наоборот, как сейчас.     | |||
| 61
    
        Кирпич 03.08.16✎ 17:41 | 
        (60) ну добавить() работает в разы быстрее чем вставить(). это факт.     | |||
| 62
    
        Garykom гуру 03.08.16✎ 17:44 | 
        (60) подразумевается http://cppstudio.com/post/8453/
 и да если наш динамический массив вырос то или долго перекидываем данные в новый массив побольше или просто делаем составной массив добавляя новые вектора итого добавляться оно будет шустро при любых объемах, но вот работа(доступ) с элементами замедляется на преобразованиях между несколькими векторами, получением нужного | |||
| 63
    
        H A D G E H O G s 03.08.16✎ 17:45 | 
        (61) вставить должна найти элемент за который надо вставить и связать список, так что не показатель     | |||
| 64
    
        Кирпич 03.08.16✎ 17:48 | 
        (63) ну есть еще аргумент "делать массив на связанных списках это дебилизм"
 интересно, как можно проверить как оно внутри устроено. | |||
| 65
    
        Garykom гуру 03.08.16✎ 17:49 | 
        (64) хорроший аргумент веско-убойный     | |||
| 66
    
        Serginio1 03.08.16✎ 17:52 | 
        (48) Причем тут  Врап = Новый ComОбьект и использовать ъТип ?
 Иногда проще весь алгоритм вынести либо в DLL или динамически скомпилировать. И надеюсь, что 1С все таки сделает возможность передачи объектов в Native ВК и тогда синтаксис будет максимально приближен к C#. | |||
| 67
    
        Mauser 03.08.16✎ 17:56 | 
        (66) Карфаген должен быть разрушен!     | |||
| 68
    
        Garykom гуру 03.08.16✎ 17:57 | 
        (66) А потом другие java захотят или js скриптики выполнять в своей 1CVM     | |||
| 69
    
        Serginio1 03.08.16✎ 18:04 | 
        (68) Так кто мешает? Если хочется -- делай!
 Бери мои исходники и прикручивай. Скоро статью напишу. | |||
| 70
    
        Garykom гуру 03.08.16✎ 18:08 | 
        (69) Пока отложил это есть более интересные проекты.
 И пока не придумал способа монетизации, а работать за идею уже надоело. | |||
| 71
    
        Garykom гуру 03.08.16✎ 18:09 | 
        (70)+ Ладно бы еще ради новых знаний/опыта но тут опыта ноль, тупой кодинг нескоко дней с отладкой     | |||
| 72
    
        Asmody 03.08.16✎ 18:10 | 
        А теперь сделайте мне, пожалуйста, конкурентную очередь на несколько пользователей.     | |||
| 73
    
        hitodom 03.08.16✎ 18:13 | 
        (72) в 1с?     | |||
| 74
    
        Garykom гуру 03.08.16✎ 18:13 | 
        (72) Очередь выполнения или хранения?     | |||
| 75
    
        Garykom гуру 03.08.16✎ 18:15 | 
        (74)+ с гонками что делать если будут?     | |||
| 76
    
        Asmody 03.08.16✎ 18:15 | 
        (73) А что смущает?
 (74) Не принципиально: и кладем, и достаем вкучером. | |||
| 77
    
        hitodom 03.08.16✎ 18:16 | 
        (76) если только на регистре сведений     | |||
| 78
    
        Asmody 03.08.16✎ 18:16 | 
        (75) Посылать матом сообщение разработчикам.     | |||
| 79
    
        Garykom гуру 03.08.16✎ 18:19 | 
        (78) Идея хорошая думал просто блокировками разрешать
 (76) Если и кладем и достаем, пропускать вперед тех кто кладет если доставать нечего? И уточнение когда достаем оно там остается или пропадает? | |||
| 80
    
        Garykom гуру 03.08.16✎ 18:20 | 
        (79)+ очередь то коробка с товаром или коробка с информацией?     | |||
| 81
    
        Asmody 03.08.16✎ 18:21 | 
        (79) Ну, это уже детали.     | |||
| 82
    
        Garykom гуру 03.08.16✎ 18:22 | 
        (81) Это нифига не "уже детали" для решения задачи.     | |||
| 83
    
        Tarzan_Pasha 03.08.16✎ 18:59 | 
        дерево, граф, дек, список     | |||
| 84
    
        vermazar 03.08.16✎ 20:05 | 
        (4) А структура?     | |||
| 85
    
        Звездец 03.08.16✎ 20:08 | 
        (84) хочешь ты чего? структура, массив, стек, очередь и тд вещи немного разные. Что-то есть в 1с, чего-то нет. То чего нет пока вроде не особо и надо, обходимся как-то. Если бы было может где-то и применилось бы, хз так на вскидку придумать где     | |||
| 86
    
        Serginio1 03.08.16✎ 20:08 | ||||
| 87
    
        Звездец 03.08.16✎ 20:10 | 
        (86) действительно, что же еще ты мог написать, естественно .нет )))     | |||
| 88
    
        Serginio1 03.08.16✎ 20:12 | 
        (87) Естественно показан пример реализации конкурентной очереди. Но тебе же это не нужно.     | |||
| 89
    
        Звездец 03.08.16✎ 20:15 | 
        (88) если в каждом случае в 1с пихать net, если в нем что-то реализовано иначе, то зачем тогда вообще 1с. Некоторые вещи хочется обсудит именно со стороны возможностей платформы и только     | |||
| 90
    
        zak555 03.08.16✎ 20:16 | 
        (84) не гарантируется всегда и та же последовательность     | |||
| 91
    
        mkalimulin 03.08.16✎ 20:17 | 
        (84) Структура есть.     | |||
| 92
    
        Serginio1 03.08.16✎ 20:21 | 
        (89) Читай внимательно 72. Что скажешь если .Net станет частью платформы?     | |||
| 93
    
        Звездец 03.08.16✎ 20:22 | 
        (92) вот и мне интересно, возможно ли сделать очередь на чисто 1с.  Вот когда станет частью, так и будем тогда все поголовно изучать net в совершенстве     | |||
| 94
    
        Serginio1 03.08.16✎ 20:25 | ||||
| 95
    
        Garykom гуру 03.08.16✎ 20:49 | 
        (94) Семафоры куда дел? Это же классика мультитридинга     | |||
| 96
    
        mehfk 03.08.16✎ 21:18 | 
        (92) Чтобы это тормозное г0вн0 стало частью платформы? - Да нафиг не нужно.     | |||
| 97
    
        Звездец 03.08.16✎ 21:23 | 
        (96) будем потом говорить что восьмерка летала, а теперь ...     | |||
| 98
    
        Serginio1 03.08.16✎ 22:47 | 
        (96) Можно поподробнее про тормозное? 
 https://habrahabr.ru/post/304542/ Выполняет 400 000 вызовов в секунду. 1С делает 150 000. Да через ВК быстрее вызов падает более чем в 10 раз до 30 000. Но там можно сократить в 2 раза как минимум. И того проигрыш в 2 раза. Что касается скомпилированного кода то он значительно быстрее 1С. Объясните вашу методику. Кроме того в большинстве нужна даже не скорость, а доступ к библиотекам, асинхронное выполнение. Например .Net в 1С. Парсинг сайтов, multipart/form-data, gzip итд 1C Messenger для отправки сообщений, файлов и обмена данными между пользователям Доступ к хранилищу сертификатов ЭП из сеанса под IIS А вот из-за того, что на линуксе нет СОМ то люди используют вэб сервисы, которые тормозные до нельзя это ни кого не волнует. | |||
| 99
    
        Mauser 04.08.16✎ 00:02 | 
        (98) 
 - Здравствуйте, уважаемые программисты .net! Сегодня я расскажу вам, как корректно отразить удержание алиментов из заработной платы сотрудника или дохода должника согласно статьи 109 СК РФ и части 3 статьи 98 ФЗ "Об исполнительном производстве" от 02.10.2007 № 229-ФЗ... ...как "пошел наъ"? | |||
| 100
    
        Звездец 04.08.16✎ 00:04 | 
        стр следующая     | |||
| 101
    
        Звездец 04.08.16✎ 00:05 | 
        (98) (99) ну не понимаю я холиваров на тему: что лучше круглое или квадратное? каждый инструмент должен использоваться по предназначению     | |||
| 102
    
        Garykom гуру 04.08.16✎ 00:11 | 
        (101) А если научить квадратное кататься? И круглое стоять ровно ))     | |||
| 103
    
        PR 04.08.16✎ 01:09 | 
        Мда, и что ветка не в пятницу появилась     | |||
| 104
    
        Asmody 04.08.16✎ 01:20 | 
        (98) В linux используют сокеты. На более высоком уровне для межпрограммного взаимодействия — dbus (которая тоже поверх сокетов). То, что 1С их не поддерживает — видимо, пока не надо было.      | |||
| 105
    
        orefkov 04.08.16✎ 02:50 | 
        (57)
 Инфа об устройстве массива в 1С получена путём дизассемблирования. Внутри там простой vector<Value> и код, простой как три рубля. Посмотреть код своими глазами можно очень просто, если у вас есть снегопат. В движок снегопата, к примеру в функцию main вставляем следующий код: IValueArray&& va; currentProcess().createByClsid(CLSID_ValueArray, IID_IValueArray, va); dumpVtable(&&va); Ну и в каталоге dump появляется дизасм внутренней реализации интерфейса объекта Массив. Весь листинг сюда вываливать не буду, только функция count() Function 3 uint count() address is 0x101D8BC0 - offset is 0x168BC0 55 push ebp 8B EC mov ebp,esp 8B 4D 08 mov ecx,[ebp+0x8] 8B 41 18 mov eax,[ecx+0x18] 2B 41 14 sub eax,[ecx+0x14] C1 F8 03 sar eax,0x3 5D pop ebp C2 04 00 retn 0x4 В-общем, по смещению 0x14 лежит вектор, который в 1С реализуется как три указателя - первый указывает на начало данных, второй на конец данных, третий на конец выделенного блока памяти. Как видим для определения количества элементов из указателя на конец данных вычитается указатель на начало данных и делится на 8 (это размер Value, значения 1С). Никаких шаманств и оптимизаций, наподобие разбиения массива на подсписки - нет. В чём каждый желающий может удостоверится, изучив полный дамп всех виртуальных функций объекта Массив. | |||
| 106
    
        H A D G E H O G s 04.08.16✎ 03:09 | 
        (105) Удивился. Проверил.
 Да, вы правы. Массив1=Новый Массив; Для Счетчик=1 по 10 Цикл Массив1.Добавить(10); КонецЦикла; Массив2=Новый Массив; Для Счетчик=1 по 1000000 Цикл Массив2.Добавить(10); КонецЦикла; Начало=ТекущаяУниверсальнаяДатаВМиллисекундах(); Значение=Массив1[9]; Конец=ТекущаяУниверсальнаяДатаВМиллисекундах(); Сообщить("Время получения из массива 1: "+Строка(Конец-Начало)); Начало=ТекущаяУниверсальнаяДатаВМиллисекундах(); Значение=Массив2[9990]; Конец=ТекущаяУниверсальнаяДатаВМиллисекундах(); Сообщить("Время получения из массива 2: "+Строка(Конец-Начало)); Все таки это классический массив - кусок памяти. Повелся на Решение разреженных СЛУ пост 44. | |||
| 107
    
        orefkov 04.08.16✎ 03:20 | 
        (106)
 Я вам даже больше скажу по-секрету - СписокЗначений унутре на самом деле не список, а тоже вектор (только тсссс...). Вот ТаблицаЗначений - там уже да, вроде бы применяется страничная организация хранения строк, но зуб давать не буду, досконально не разбирался. | |||
| 108
    
        orefkov 04.08.16✎ 09:23 | 
        (106)
 Я в той ветке отписал, в чём могут быть причины. | |||
| 109
    
        Кирпич 04.08.16✎ 09:36 | 
        (108) а вот нафига 1С так заморочилась с вещественными числами? Интересно, а в каком нибудь SAP тоже так же презрели double?     | |||
| 110
    
        Кирпич 04.08.16✎ 09:38 | 
        +(109) при чем, знавал одного гения, который на 1С считал что-то такое, что даже в числа 1С не влазило. Я ему делал ВК для вычислений с гигантскими числами.     | |||
| 111
    
        H A D G E H O G s 04.08.16✎ 09:39 | 
        (109) это указатель на данные наверно     | |||
| 112
    
        Кирпич 04.08.16✎ 09:40 | 
        (111) не. я про то, что у них в 1с своя реализация вещественного типа.     | |||
| 113
    
        orefkov 04.08.16✎ 10:13 | 
        (112)
 Она у них такая еще с 7ки. Только название класса поменяли с CNumeric на Numeric - внутри всё один в один. Видимо, решили что для точных бухгалтерских вычислений double не хватит. Это были лихие 90ые, всё считалось в миллионах, мы умножали, как могли. | |||
| 114
    
        Serginio1 04.08.16✎ 10:25 | 
        (104) Вот .Net Core используется как на Линуксе,Windows,IOS,Android.
 Да функционал по сравнению с .Net 4.6.2 урезан, зато кроссплатформен. Сейчас допишу и выложу статью и исходники. Поддержка Динамиков, Методов раширения, Вывод типов в дженерик типах в том числе поиск по методам расширения и ограничениям. Можно добавить синонимы для методов и свойств типа и вызывать например методы String на русском. | |||
| 115
    
        Кирпич 04.08.16✎ 10:34 | 
        Скорее бы уже 1с загнулась и перейти на этот .NET, чтобы Serginio1 уже не мучил бы людей своими динамиками и линками с дженериками.     | |||
| 116
    
        Serginio1 04.08.16✎ 10:49 | 
        (115) А ты не мучайся. Просто получи удовольствие от динамиков и линков с дженериками. Мне в 1С их сильно не хватает.     | |||
| 117
    
        Звездец 04.08.16✎ 10:52 | 
        (116) а большему количеству здесь присутствующих важнее сформированный 6-ндфл и правильно рассчитанная себестоимость встречного выпуска. и от этого удовольствие     | |||
| 118
    
        b_ru 04.08.16✎ 10:52 | 
        (116) Для получения удовольствия требуется головной мозг. Он же не у всех есть.     | |||
| 119
    
        Кирпич 04.08.16✎ 11:21 | 
        (118) а как ты получаешь удовольствие от головного мозга? ты его ешь?     | |||
| 120
    
        Кирпич 04.08.16✎ 11:26 | 
        +(119) или тебе доставляет удовольствие сам факт того, что у млекопитающих есть мозг?     | |||
| 121
    
        Asmody 04.08.16✎ 11:32 | 
        (116) Какие дженерики? В 1С динамическая типизация.     | |||
| 122
    
        b_ru 04.08.16✎ 11:42 | 
        (119) Не, я его использую для творческого самовыражения.     | |||
| 123
    
        Кирпич 04.08.16✎ 11:45 | 
        (122) художник значит     | |||
| 124
    
        b_ru 04.08.16✎ 11:46 | 
        (123) неа, инженер :)     | |||
| 125
    
        Кирпич 04.08.16✎ 11:50 | 
        (121) ну как бы язык 1с в недалеком будущем полностью заменит C#, а неблагодарные скоты, не принимающие пришествие дотнета в 1С, сдохнут и истлеют аки мусор.     | |||
| 126
    
        Кирпич 04.08.16✎ 11:51 | 
        (124) слесарь-интеллигент со средним образованием. понятно.     | |||
| 127
    
        b_ru 04.08.16✎ 11:53 | 
        (126) Ошибся снова. Судя по количеству фейлов, собираешься избираться на пост мера Лузервилля?     | |||
| 128
    
        Кирпич 04.08.16✎ 11:55 | 
        (127) мэра чтоли?     | |||
| 129
    
        b_ru 04.08.16✎ 11:56 | 
        (128) Точно, прости за опечатку, если это так важно для тебя.     | |||
| 130
    
        Кирпич 04.08.16✎ 12:03 | 
        (129) это не опечатка. буквы в разных концах клавиатуры. и это очень важно.     | |||
| 131
    
        Mauser 04.08.16✎ 12:05 | ||||
| 132
    
        Serginio1 04.08.16✎ 12:20 | 
        (121) Угу это прежде всего касается Linq.А там статическая типизация с анонимными типами.
 В 1С очень плохо с intellisense. Посмотри на TypeScript. Хотя он и транслируется в JS, многие пользуются им прежде всего из за intellisense и контролем за типом. | |||
| 133
    
        vermazar 04.08.16✎ 13:06 | 
        Подкиньте, плз, реализацию очереди.     | |||
| 134
    
        Это_mike 04.08.16✎ 13:10 | 
        (133) - (3)?     | |||
| 135
    
        vermazar 04.08.16✎ 13:11 | 
        (134) На стек очень похоже.     | |||
| 136
    
        vermazar 04.08.16✎ 13:17 | 
        А как ошибки контролировать? Если стек или очередь пустые?     | |||
| 137
    
        Это_mike 04.08.16✎ 13:23 | 
        (136) указатель на начало равен указателю на конец.
 или количество элементов в очереди/стеке равно нулю. в общем, зависит от реализации. | |||
| 138
    
        Кирпич 04.08.16✎ 14:01 | 
        (136) хватит уже дурачком прикидываться. это все в школе, на информатике, проходят.     | |||
| 139
    
        vermazar 05.08.16✎ 19:36 | 
        (138) Не в каждой. Ворд, ексель.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |