МГ: видео от 2010-07-16

Предлагаю вам посмотреть очередные 10 уроков, содержащих ответы на вопросы.

Сегодня разобрано несколько очень интересных вопросов, особенно рекомендую к просмотру ответ на вопрос №6.

К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте — залогиньтесь.

Если не активировали токен — посмотрите видео-инструкцию (видео N5)

Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись — напишите нам на e-mail поддержки.

комментариев 18 на “МГ: видео от 2010-07-16”

  1. Евгений Ершов 01.08.2010 в 22:29

    1.По вопросу №6.
    Необходимо добавить (для модуля формы): если вызов серверных процедур будет происходить не из клиентской, а из серверной, тогда
    сбрасываться значения переменных не будут. Наверное сброс значения переменной происходит в момент возврата из серверной процедуры на клиентскую.

    Например:
    &НаСервере
    Перем Тест;

    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Тест = 100;
    ВызовСервера1();
    А = Тест; //Тест = 101
    ВызовСервера2();
    Б = Тест; //Тест = 102
    КонецПроцедуры

    &НаСервере
    Процедура ВызовСервера1()
    Тест = Тест+1;
    КонецПроцедуры

    &НаСервере
    Процедура ВызовСервера2()
    Тест = Тест+1;
    КонецПроцедуры

    2. По видео 5 дополнительный вопрос.
    Если присвоить глобальной переменной, объявленной в модуле управляемого приложения, значение (для пользователя 1).
    Тогда при работе приложения другого пользователя (пользователь 2) значение этой переменной будет равно значению переменной пользователя 1 или у каждого пользователя значение переменной будет своё?
    И есть ли какая либо возможность обмениваться значениями переменных между разными сеансами работы пользователя?

    • 1. Да, так и есть.
      2. У каждого пользователя своя переменная, возможности обмениваться данными сеанса нет.
      Только через объекты базы данных (регистры сведений, например).

  2. Спасибо ASK и E.Gilev. Перенумерация отработала на ура.

  3. Илья Чернов 18.07.2010 в 16:25

    Вопрос 7. А Если сбился нумератор у документов. а документы уже напечатали и к примеру отправили заказчику, как в этом случае поступить? При этом, старые переделывать нельзя, а новые должны нумероваться как и прежде.

    • Для документов обычно такой проблемы нет, так как используются принудительные префиксы.

      • можно проще? это вы про нумераторы имеете в виду?

        • Имею ввиду, что при присвоении номера документа, обычно ему присваивается префикс, в этом случае неважно, какие правки делал пользователь в номерах.
          Есть исключение, его привел Илья выше..

      • Илья Чернов 19.07.2010 в 00:59

        А если номера были ПР00001, ПР00002, а стали вдруг ПР003, ПР004, ПР005. И необходимы чтобы следующий был ПР00003?

        • Поскольку префикс документов не должен печататься, то следующим должен быть номер ПР00006, верно?
          Т.е. можно просто исправить вручную сбитые номера.
          Если же префикс почему-то печатается (нетиповая конфигурация), то префикс “ПР” можно считать потерянным, поскольку нельзя править уже напечатанные документы.
          Нужно завести префикс “Пр” и начинать нумерацию с “Пр0003”.

  4. извините, вопрос 7: ваше решение немного неверное, вы же сказали, пользователь может случайно нажать “Ы”, а значит может нажать и любую другую букву или цифру… подход нужно сделать более сложным, для правильного решения поставленной задачи… это Вы так нас учили ;)

    • Здесь сложность в том, что неверность нумерации должен определить сам пользователь.
      Ведь программно невозможно определить, что префикс “Ыы” является неправильным, а префикс “ПРк” корректным..
      Поэтому и жестко ориентируемся на конкретный префикс..

    • Коды желательно от пользователей закрывать.
      А-то они накосячат, но виноватым будет программист, как обычно.
      :)
      В 1С 7.7 иногда занимались перенумерацией справочников через использование “левого” префикса.
      Т.е. в 1-ом цикле присваивались коды с “левым” префиксом через УстановитьНовыйНомер(“$-“).
      А во 2-ом проходе эти коды переправлялись на нужный префикс с определенным порядковым номером: НовыйНомер = СокрЛП(УстПрефикс)+Строка(Формат(Счетчик,СтрокаФормата))

      • Да, не забыть это делать в транзакции.

  5. Думаю, в 7 уроке можно все упростить:
    После поиска “кривых” элементов для каждого из них выполнить метод
    УстановитьНовыйКод(“0”) (естественно для объета, а не ссылки).

  6. s_mitrahovich 17.07.2010 в 09:29

    Большое спасибо, получилось.

  7. s_mitrahovich 17.07.2010 в 01:34

    Всем доброй ночи.
    Почему-то не качается вопрос №4.