Базовый курс. МГ сессия от 16.02.2011

Рассмотрим порцию свежих вопросов участников базового курса по программированию.

1. Оперативное проведение документов.
После просмотра урока «Особенности оперативного проведения» 1-ой главы 2-го блока (файл Block2-305-part0-add.exe) не все, я думаю, могут осознать последствия повторного проведения документа.
Пример:
Создали приходную накладную
Создали расходную накладную
Перепровели приходную накладную.
Т.е. получится следующее: приходная накладная перепроведется с текущим временем и окажется позже расходной накладной, что будет неправильно.
Ведь остатки уйдут в минус. И только через отчеты можно будет увидеть эти минусы. Сама программа никак об этом не просигнализирует.

2. Конкатенация в запросе.
Во встроенном языке можно делать операцию конкатенации к строке прибавляя строку или же другой тип.
В тексте запроса не удается сделать конкатенацию, если прибавляемое значение не есть строка.

3. Нумерация документов.
Разбираюсь с многофирменным учетом и установкой префиксов у документов.
Сделал простейшую конфигурацию – Справочник Организации со строковым реквизитом Префикс, и один документ с Реквизитом Организация.
Префикс номера документа должен браться из Организации.
При изменении Организации, префикс у документа тоже должен изменяться.
Проблемы:
номер все время увеличивается, и получаются пропуски номеров. Не понятно, куда пропадают номера…
Например, я удаляю ВСЕ созданные документы. Так вот ИНОГДА (не всегда!) почему-то номера вновь вводимых документов начинаются не с <Префикс>00000001, а с того номера, который был перед удалением плюс один.

4. Просмотр данных по одной группе.
Есть справочник иерархия элементов!
Каким образом можно посмотреть для одной из номенклатур все элементы которые входят в него?
Для того чтобы посмотреть куда он входит есть Родитель, А вот что-то типа «подчинение» нет!

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

комментариев 10 на “Базовый курс. МГ сессия от 16.02.2011”

  1. Александр Горлов 20.02.2011 в 04:24

    По п.3.
    А как тогда связан указанный в уроке метод глобального контекста ОбновитьНумерациюОбъектов() со свойством конфигурации “Режим автонумерации объектов”, который может принимать значения:

    Не освобождать автоматически
    Освобождать автоматически

    ?

    • Можно сказать, что это разные механизмы.
      При выборе значения “Освобождать автоматически” система будет присваивать номер при открытии документа и если он не записан, то будет номер “освобождать”.
      При выборе “Не освобождать автоматически” будет происходить присваивание номера при записи документа.

  2. Александр Горлов 20.02.2011 в 04:14

    По п.2
    Попытался “шаманскими” способами заставить платформу все же выполнить конкатенацию в запросе и наткнулся на следующее.
    Встроенная функция запроса ПРЕДСТАВЛЕНИЕ вообще-то возвращает строковый тип данных. Чтобы проверить это, достаточно выполнить вот такой запрос:

    ВЫБРАТЬ
    ТИПЗНАЧЕНИЯ(ПРЕДСТАВЛЕНИЕ(111)) КАК Поле1
    ВЫБРАТЬ ТИПЗНАЧЕНИЯ(ПРЕДСТАВЛЕНИЕ(111)) КАК Поле1
    Возвратится значение “Строка”!
    Однако последующие попытки сделать что-то с этой строкой не приносят успеха – система в любом случае диагностирует несовместимость типов. В чем здесь дело?

    • Полагаю это ограничение языка запросов.

  3. Александр Горлов 20.02.2011 в 03:36

    По п.1.
    А разве при оперативном перепроведении приходного документа последовательность решит проблему? На какой позиции тогда станет граница последовательности, если перепровести приходный документ?

    • Последовательность решит проблему.
      Пример границы последовательности:
      28.02.2011 9:13:10; Поступление товаров DN0000024 от 28.02.2011 9:14:12.

      То есть остается момент времени “старого” значения документа, хотя сам документ имеет уже другое время.

  4. Можно я еще один вопрос спрошу?

    У класса “Регистра накопления менеджер” есть метод СоздатьКлючЗаписи(). Ключ записи – это Регистратор и НомерСтроки. В параметрах этого метода в структуре задаются значения ключа, НО в приведенном в синтаксис-помощнике примере в качестве значений ключа задаются, видимо, значения измерений…

    Пример из Синтаксис-Помощика:

    Отбор = Новый Структура;
    Отбор.Вставить(“Номенклатура”, ВыбНоменклатура);
    Отбор.Вставить(“Склад”, ВыбСклад);
    Рег = РегистрыНакопления.ТоварыНаСкладах;
    КлючЗаписи = Рег.СоздатьКлючЗаписи(Отбор);

    Хотя в моем понимании пример должен выглядеть так:

    Отбор = Новый Структура;
    Отбор.Вставить(“Регистратор”, ВыбДокумент);
    Отбор.Вставить(“НомерСтроки”, ВыбНомерСтроки);
    Рег = РегистрыНакопления.ТоварыНаСкладах;
    КлючЗаписи = Рег.СоздатьКлючЗаписи(Отбор);

    Или я чего-то недопонял…

  5. Евгений, спасибо за такое подробное рассмотрение!