Задать вопрос
  • Планирую перейти с 1С на Golang на сколько реально в 42 года?

    Mikhail_E
    @Mikhail_E
    darst изначально на джуна перешел, или сразу на милда ?
    По знакомству или с нуля?
  • Почему не могу наложить фильтр в виртуальной таблице через ее параметры?

    Mikhail_E
    @Mikhail_E
    foonfyrick, нет в коде вы пишите запрос строкой (Тип текста вашего запроса строка).
    Строка в коде обычно начинается с ковычки " и заканчивается ковычкой "
    Если вам в тексте нужно поставить символ ковычки, чтобы он был не ограничением вашей строки, а именно как символ, ставятся двойные ковычки. Поэтому Конструкция """" = " в тексте при исполнении.
  • Почему не могу наложить фильтр в виртуальной таблице через ее параметры?

    Mikhail_E
    @Mikhail_E
    foonfyrick
    Ошибка в количестве ковычек... должно быть так :
    ... СтрЗаменить(МЗапрос.Текст, "= Цветок.Наименование", "= "+""""+НазваниеЦветка+"""").

    Но правильней пользоваться параметрами запроса.
    Например :
    ...Остатки(,Цветок.Наименование = &НаименованиеЦветка)....

    а вместо "СтрЗаменить" : МЗапрос.УстановитьПараметр("НаименованиеЦветка",НазваниеЦветка);
  • Что эффективнее работает Join Composite Key или Primary Key?

    Mikhail_E
    @Mikhail_E
    Константин Цветков
    1. Менять своё решение - не очень красивая практика, обычно для этого делают комментарий с подпиской "Upd:" или что-то типа того.

    2. Если вы хотите -уникальную дату запись - в PK для этого обычно используют тип "timestamp"
    Upd: timestamp - не дата, но уникальность даст. Для уникальной даты (записи с датой) в рамках пакетной вставки, имеет смысл делать связку Временного типа и доп. значения для уникальности
    Но это скорее опять же проблема набора данных. при последовательной вставки - этой проблемы нет.


    CREATE TABLE [dbo].[Table_5](
      [Date] datetime NOT NULL,
      [ID] timestamp NOT NULL,
      [Name] [varchar](50) NOT NULL,
     CONSTRAINT [PK_Table_5] PRIMARY KEY CLUSTERED 
    (
      [Date],[ID] ASC
    )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, OPTIMIZE_FOR_SEQUENTIAL_KEY = OFF) ON [PRIMARY]
    ) ON [PRIMARY]
    GO
    
    ALTER TABLE [dbo].[Table_5] ADD  CONSTRAINT [DF_Table_5_ID]  DEFAULT (current_timestamp) FOR [Date]
    GO
    
    INSERT INTO Table_5 (Name)
      SELECT TOP(5) 'TEST' + CAST(ROW_NUMBER() OVER(ORDER BY id) AS VARCHAR)
             FROM sysobjects
    
    Select * from [dbo].[Table_5]


    Но опять же проблема уникальности в данном вопросе вообще не актуальна. Т.к. контекст использования таблицы не описывается.

    Upd:
    3.
    В 1С есть специальная обработка для построения хронологических цепочек (например, что бы различать оплату и аванс относительно отгрузки), которая устанавливает на документах несовпадающее время.
    В 1с для решения этой проблемы :
    1. Используются Несколько измерений, поэтому уникальность даты стоит на 2-м плане.
    2. Есть такое понятие как "Момент времени" т.е. если перевести на MSSQL то это "ДатаВремя" + "Ссылка (Уникальный идентифкатор ссылки + Уникальный идентификатор типа ссылки) который даже при одинаковой дате, для разных документов ,будет уникальным.
    3. В 1С для колонки даты используется тип Datetime2 который имеет 7 знаков после секунды.
    типа "2007-05-02T19:58:47.1234567"
    upd: + Для уникальности записей в рамках 1-й даты + 1й ссылки есть такой реквизит как "Номер строки"
    Но причём тут 1С вообще загадка. её даже в теге нет.
  • Что эффективнее работает Join Composite Key или Primary Key?

    Mikhail_E
    @Mikhail_E
    Константин Цветков
    будет ошибка уникальности.

    по какой причине будет ошибка уникальности в неуникальных значениях ? Если я хочу хранить в таблице календарь или распорядок дня, я например именно его и буду использовать.
    Ошибка уникальности - это не про проблему Datetime, её можно вызвать с любым типом... это про набор данных. В вашем примере ошибка не из-за типа, а из-за некорректного набора данных, который вы использовали.
    Либо используется date (пишем '20210101'

    Причём тут Date ? в вопросе Datetime, в вашем примере у колонки datetime, я вам дал выборку, при которой в Datetime никаких ошибок нет. Использование '20210101' при записи в поле Datetime допустима. И в таблице при этом все равно будет Datetime. Да, Date меньше чем int, но а ещё есть bit оно вообще 1 байт, но они здесь не причем в вопросе было про int и datetime.
  • Что эффективнее работает Join Composite Key или Primary Key?

    Mikhail_E
    @Mikhail_E
    Константин Цветков, В вопросе было про Datetime речь. Если у нас колонка имеет тип "Datetime" и мы туда пишем '20210101', при записи, в окончание будут дописаны нули (Про часы, минуты и секунды) и в БД все равно будет Datetime. Это схема таблицы, которую вы предложили для теста.
    Т.е. если мы в колонку с типом Datetime пишем '20210101' или '2021-01-01T00:00:00' в базу данных запишется одно и тоже значение. Я упростил для того чтобы вы обратили внимание на проблему вашего примера.
    Если вам будет удобнее можете попробовать
    values ('2021-01-01T00:00:00', 'test1'),
        ('2021-01-02T00:00:00', 'test2'),
        ('2021-01-03T00:00:00', 'test3'),
        ('2021-01-04T00:00:00', 'test4'),
        ('2021-01-05T00:00:00', 'test5')
  • Что эффективнее работает Join Composite Key или Primary Key?

    Mikhail_E
    @Mikhail_E
    Лентюй,
    это не значит, что количество реально прочитанных страниц будет отличаться ровно в два раза
    - Согласен, если мы будем учитывать некоторые служебные указатели там будет не "Ровно в 2" но около того. +/- 10% думаю.
    одна страница может хранить данные, которые при текущей выборке и не нужны совсем, но получить нужные данные нельзя, не прочитав страницу полностью.
    Да, кончено может, согласен, но если мы отвечаем на вопрос "Что эффективнее", для теста мы берем базу данных с одной таблицей. и последовательную запись. В этом случае у вас страницы будут содержать на 90% последовательные значения. Если мы говорим про Базу данных с 1000 таблиц и запись в них будет в разнобой, конечно на одной странице будут данные разных таблиц. Но это уже не совсем чистый эксперимент.
    движок не исключает возможности хранения данных размером менее размера страницы в более чем одной странице
    - да, это тоже так, но не совсем понимаю, как это противоречит с условной формулой (не точной но очень близкой к правде) Количество байт / размер страницы = количество страниц.
  • Что эффективнее работает Join Composite Key или Primary Key?

    Mikhail_E
    @Mikhail_E
    Константин Цветков и да, точные ответы на вопрос
    Что эффективнее работает для выборки
    , вполне себе есть, измеряются они в "Duration", "Reads" и "Cpu time" , затраченных на выполнение выборки при одинаковых объёмах данных. Что меньше читает с диска и меньше тратит ресурсы процессора, считается эффективнее.
    Про
    кэши и статистики и следующий запрос будет работать по-другому
    - это вообще из другой оперы. Для оценки эффективности можно замерять и на холодный кэш и на разогретый, и это про построение плана запросов.

    Про "вы никогда не сможет сделать лучше его оптимизатора" - а я смогу, например в некоторых случаях вполне себе можно косвенно повлиять на план запроса. Например через доп. указания к выполнению запроса и да , иногда это будет быстрее при одинаковом результате. что это как не "Заставить оптимизатор использовать конкретные указания, вместо обычного его поведения" ?
    Например в некоторых случаях накладные расходы на параллелизм могут превышать профит от его использования. и в этих случаях можно ему напрямую указать на это через MAXDOP.
  • Что эффективнее работает Join Composite Key или Primary Key?

    Mikhail_E
    @Mikhail_E
    А если так :
    INSERT INTO Table_5 (ID,Name)
      values ('20210101', 'test1'),
    		('20210102', 'test2'),
    		('20210103', 'test3'),
    		('20210104', 'test4'),
    		('20210105', 'test5')


    Тогда работает ... и вполне допустимо, вы же не знаете, может он в таблице календарь будет хранить ...
  • Что эффективнее работает Join Composite Key или Primary Key?

    Mikhail_E
    @Mikhail_E
    Лентюй, Почему ? нет, но количество страниц данных при int будет меньше чем при datetime
    => если у нас 100 000 записей,
    при типе Int - это 400 кб данных, при чистой последовательной записи, это 50 страниц данных
    при типе datetime - это 800 кб данных, и 100 страниц данных.
    По этой логике для скана этих данных , int будет в 2 раза легче для дисковой подсистемы. И несколько быстрее чем datetime.
    ... или я не так понял вопрос ?
  • Внешняя обработка 8.3?

    Mikhail_E
    @Mikhail_E
    TataRus,
    сказали, что тут решается через обращение к реквизиту и никакой запрос не нужен

    Ну и справедливости ради, при обращении к реквизиту через точку, 1С платформа, также генерит запрос.
    И ваше решение через запрос "В общем случае является наиболее эффективным", "а обращение к реквизитам через точку, не лучшая " практика
    Можете просветить "Специалиста" ))
  • Почему USB-C/Thunderbolt порт может не работать?

    Mikhail_E
    @Mikhail_E
    Антон Иванов, Сори, что не сразу ответил, материнка не совсем такая, скорее такая :
    https://i.ebayimg.com/images/g/M1AAAOSweClfFyY2/s-...
    И похоже напутал, у меня всёже было USB 3.0 (Слева нижний угол , там где проводок черно/красный)
    там блок USB 3.0 + SD на разьёме
  • Почему USB-C/Thunderbolt порт может не работать?

    Mikhail_E
    @Mikhail_E
    Была аналогичная проблема с Dell G7. Помогло выткнуть проводок из материнки и заново воткнуть.
  • PARTITION для готовой базы данных?

    Mikhail_E
    @Mikhail_E
    tzn За MySql не скажу, могу сказать, что в MSSQL - это делается только через создание таблицы.
  • Как и где обучиться 1С?

    Mikhail_E
    @Mikhail_E
    Евгений Иванов,
    А есть видеокурсы, мануалы?

    Да,
    1-й самый лучший вариант: Пройти курс в 1С Учебном центре (очный), там сам вендор вам расскажет про ту или иную конфигурацию и опишет основные "кейсы" с которыми вам придётся сталкиваться, по окончании получите Официальный сертификат от 1С :
    - Тестирование с вариантами (Как ЕГЭ) = 1С Профессионал
    - Решение 3/5 кейсов на время, с проверкой = 1С Специалист
    и стоит не оч. дорого (10-20 тыр в зависимости от направления). Далее в вакансиях вы будете часто встречать "Наличие сертификата будет преимуществом при приеме".
    (Больше всего ценятся "1С Специалист по платформе", "1С Спец. по " УТ/БП/ЗУП/ЕРП, "1С Эксперт По технологическим вопросам") при наличии "1С Специалист по платформе" - уже можно уверенно идти как мидл., при наличии "1С Эксперт По технологическим вопросам" - часто берут на Сеньора.

    2. Сторонние платные курсы (видео материалы с "разжёвыванием" кейсов и подробностей того или иного направления) По окончанию никаких сертификатов обычно не дают, т.е. для себя. Но иногда понятнее чем в официальном УЦ.

    3. Ютуб - но это обычно мелкие подробности ... по ним скорее какие-то частности можно посмотреть ...
  • Ошибка при создании процедуры..?

    Mikhail_E
    @Mikhail_E
    Можт попробовать :
    declare
    @work_type VARCHAR(20),
    @count int;
  • Какую посоветуете прочить книгу по SQL?

    Mikhail_E
    @Mikhail_E
    Akina, это с каких пор sql-ex стал "bad practice" ? что с ним не так ?