«Компьютер тормозит». С этим зловещим диагнозом сталкивался, пожалуй, любой владелец системного блока старше актуальной на текущий момент платформы. Казалось бы, ещё вчера старичок тянул всё подряд, а сегодня делает это с ощутимым скрипом. Но всегда ли стоит винить производителей железа и отсчитывать деньги на тотальный апгрейд? Сегодня мы поговорим о способах продления жизни ПК предпенсионного возраста с минимальными затратами.
 

Наверное, нет такого пользователя, который не хотел бы сделать работу своего компьютера (или ноутбука) быстрее. И в этом плане все больше и больше пользователей начинают обращать внимание на SSD диски (твердотельные диски) -  позволяющие ускорить практически любой компьютер (по крайней мере, так гласит любая реклама, связанная с этим типом дисков).

Довольно часто меня спрашивают о работе ПК с подобными дисками. В этой статье я хочу сделать небольшое сравнение SSD и HDD (жесткий диск) дисков, рассмотреть самые распространенные вопросы, подготовить небольшое резюме о том, стоит ли переходить на SSD и если стоит - то кому.

Теперь давайте рассмотрим список команд, которые мы можем использовать для отладки программных модулей. Все они доступны на панелях инструментов системы "1С:Предприятие" и в меню Отладка:

  • Начать отладку — начинает отладку модуля;

  • Остановить отладку — приостанавливает отладку модуля;

  • Продолжить отладку — продолжает остановленную отладку модуля;
  • Отладчик — это встроенный в конфигуратор инструмент, предназначенный для проверки и анализа выполнения программных алгоритмов. С его помощью мы можем проанализировать работу программного алгоритма, определить значения переменных в указанный момент выполнения программы и обнаружить логические ошибки. В этой главе в качестве примера работы отладчика будут взяты программные модули, уже рассмотренные в данной книге, мы обсудим их пошаговое выполнение до указанных точек останова и вычисление значений переменных в указанной точке.
    При написании программных модулей бывает так, что вроде бы модуль написан правильно... но вот работает неверно. Речь не об ошибках в синтаксисе, которые легко обнаруживаются еще при сохранении модуля или нажатии кнопки Синтаксический контроль, когда программа сигнализирует нам об ошибке, да еще и показывает ее местонахождение и в чем она заключается. Речь о неявных ошибках в логике работы модуля, которые в больших и сложных модулях отловить не так просто. Можно перечитывать текст модуля (или модулей, ведь в серьезных рабочих конфигурациях модули обычно взаимосвязаны друг с другом), следовать за логикой выполнения, пытаясь найти неверный алгоритм. Можно выводить системные сообщения со значениями ключевых переменных модуля на разные моменты выполнения программы. А можно воспользоваться отладчиком.
    Сейчас мы поговорим об очень важном аспекте работы в системе "1С:Предприятие", а именно о пользователях, их правах и возможностях. Каждый пользователь в системе работает под своим именем, что-то добавляет в базу данных, что-то изменяет. Но возможности у всех разные. У системного администратора они максимальные, у менеджера — меньше, у кладовщика или продавца — еще меньше. И это правильно, каждый должен заниматься своим делом. Если взять продавца (менеджера, кладовщика, да даже руководителя предприятия) и дать ему доступ ко всем возможностям системы, это будет хорошо? Нет. Может навредить, пусть не специально, по незнанию, но результат один. С другой стороны, продавцу не нужно знать многие аспекты работы предприятия, которые положено знать директору или главному бухгалтеру: сколько осталось товара на всех складах, от кого он пришел, по какой цене, какова выручка с продаж. Не нужны эти данные продавцу. Опять же, коммерческая тайна...

    Вот для подобного разграничения доступа и придумана такая замечательная штука, как права пользователей. Итак, по порядку.

    Под пользователем в системе "1С:Предприятие" понимается учетная запись, обладающая собственным паролем, наборами прав доступа к объектам метаданных и пользовательским интерфейсом.
    Разумеется, увидеть результаты запроса на экране — это важно. Но, кроме того, эти результаты надо обрабатывать, выводить на печать и т. д. Как обратиться к результатам запроса? Простейший пример был приведен в самом начале главы — результат запроса выводился в таблицу значений, мы выбирали нужную строку и получали ссылку на выбранную строку (а значит, точно так же могли написать любой обработчик полученного результата). Во всех разобранных нами примерах результат мы выгружаем в таблицу значений, из которой, в свою очередь, можно выбрать данные для обработки или просто поместить их в печатную форму (перебором таблицы значений и присваиванием переменным в печатной форме значений переменных в таблице значений).
    Запросы можно объединять и выводить на экран (печатную форму, использовать в расчетах) итог работы всех участвующих запросов. Количество полей в объединяемых запросах должно быть одинаковым.

    ТекстЗапрос = Новый Запрос;
    ТекстЗапрос.Текст =
       "ВЫБРАТЬ
       |Документ.РеализацияТоваровУслуг.Ссылка,
       |Документ.РеализацияТоваровУслуг.Контрагент КАК Покупатель,
       |Документ.РеализацияТоваровУслуг.ДоговорКонтрагента КАК Договор
       |ИЗ Документ.РеализацияТоваровУслуг
       |ОБЪЕДИНИТЬ
       |ВЫБРАТЬ
       |Документ.ВозвратТоваровОтПокупателя.Ссылка,
       |Документ.ВозвратТоваровОтПокупателя.Контрагент КАК Покупатель,
       |Документ.ВозвратТоваровОтПокупателя.ДоговорКонтрагента КАК Договор
       |ИЗ Документ.ВозвратТоваровОтПокупателя";
    ТЗ = ТекстЗапрос.Выполнить().Выгрузить();
    ВыбранныйЭлемент = ТЗ.ВыбратьСтроку();
    Операция ИТОГИ позволяет рассчитать итоги по полям запроса.
    Например, в следующем запросе из реализации производится выборка значений с расчетом итогов по сумме.

    ТекстЗапрос = Новый Запрос;
    ТекстЗапрос.Текст =
       "ВЫБРАТЬ
       |Док.Номенклатура КАК Товар,
       |Док.Количество КАК Колво,
       |Док.Цена,
       |Док.Сумма
       |ИЗ Документ.РеализацияТоваровУслуг.Товары КАК Док
       |ИТОГИ СУММА(Док.Сумма) ПО Док.Номенклатура";
    ТЗ = ТекстЗапрос.Выполнить().Выгрузить();
    ВыбранныйЭлемент = ТЗ.ВыбратьСтроку();
    Используется для работы с диапазонами значений. Например, следующий запрос отбирает те же данные, что в предыдущем примере, но не по сумме, большей 200, а по сумме в диапазоне между 300 и 400.

    ТекстЗапрос = Новый Запрос;
    ТекстЗапрос.Текст =
       "ВЫБРАТЬ РАЗЛИЧНЫЕ
       |Док.Номенклатура,
       |СУММА (Док.Сумма) КАК Сум
       |ИЗ Документ.РеализацияТоваровУслуг.Товары КАК Док
       |СГРУППИРОВАТЬ ПО Док.Номенклатура
       |ИМЕЮЩИЕ СУММА(Док.Сумма) МЕЖДУ 300 и 400
       |УПОРЯДОЧИТЬ ПО Сум УБЫВ";
    ТЗ = ТекстЗапрос.Выполнить().Выгрузить();
    ВыбранныйЭлемент = ТЗ.ВыбратьСтроку();

    Опрос

    Какие языки программирования вы хотите видеть на сайте

    Другие опросы...