Тренинг по подготовке к аттестации.
Обсуждение первых 8 задач второго потока

Коллеги, на этой странице предлагается задавать вопросы по решениями первых 8 задач второго потока.

Сами задачи были предварительно анонсированы здесь:

https://mg.spec8.ru/2012/06/14/devatt-2n-stream-start-materials/

и здесь:

https://mg.spec8.ru/2012/06/18/devatt-2nd-stream-tasks-5-8/

и опубликованы здесь: https://mg.spec8.ru/devatt-2nd-stream-all-materials/

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

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

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

комментариев 237 на “Тренинг по подготовке к аттестации.
Обсуждение первых 8 задач второго потока”

  1. Андрей 03.10.2012 в 16:14

    Здравствуйте, Павел.
    Можно вопрос по задаче 3.02 (не разобранной в рамках курса) про премию и командировку? (“По мере необходимости любой сотрудник может быть отправлен в командировку. В этом случае начисление по Окладу и Премии не происходит. … Следует учесть, что данные о командировке могут вводиться в систему задним числом.”)
    С одной стороны, для вида расчета премия, обычно, не используется период действия, с другой, в этой задаче она должна вытесняться и сторнироваться командировкой, и, вроде как ее удобно сделать с периодом действия. Подскажите, как тут быть?

    • В контексте приведенного Вами условия, командировка должна сторнировать оклад и должна быть введена в регистр с периодом действия.

  2. Андрей 27.09.2012 в 20:57

    Здравствуйте, Павел.

    Появился вопрос по проектированию плана счетов в бух. задаче 1, где себестоимость надо считать в разрезе партий, а остатки в разрезе складов:

    Себестоимость = Сумма [Номенклатура, Партия] / Количество [Номенклатура, Партия];

    Остаток = Количество [Номенклатура, Склад].

    Если рассматривать Количество [Номенклатура, Партия] и Количество [Номенклатура, Склад] как два разных количества, то не будет ли на экзамене караться (за “лишний” ресурс) идея завести для этих двух разных количеств два разных ресурса регистра бухгалтерии (и для них два признака учета субконто)? По-моему, при таком устройстве регистра процедуры проведения документов стали были понятнее, особенно для средних умов )).

    • Андрей 28.09.2012 в 23:33

      Вопрос снимается, Ваше решение лучше.

    • Я не вижу необходимости в втором ресурсе с количеством.

  3. Сергей 17.09.2012 в 16:46

    Здравствуйте Павел.
    Очень хотелось бы использовать консоль запросов для работы с регистрами расчета, а именно с таблицей .БазаОсновныеНачисления, но при использовании этой таблицы в консоли запросов система всегда ругается на то, что не верно задан параметр Измерения.
    В коде конфигурации используется для этого массив(как в заданиях 5 и 6)
    с 2 значениями.
    В консоли запросов этот параметр задаётся единственным возможным способом – через список значений.
    Вот ошибка: http://i.imgur.com/jOCeo.png

    Есть ли способ делать запросы к “базовым” виртуальным таблицам регистров расчетов из консоли запросов?

    • У меня всегда получалось использовать список значений с элементами типа “Строка”.

  4. comsystems 17.09.2012 в 13:24

    Здравствуйте. Вопрос по блокировкам. В регистрах накопления и бухгалтерии с блокировками все понятно, а вот с регистрами расчета не совсем. Нужно ли накладывать блокировки при решении расчетных задач?

    • По сотруднику при расчете записей можно в большинстве задач накладывать блокировки.

  5. Павел, здравствуйте.
    В первой задаче будет ли эффективней проверить Стр.ЕдиницаИзмерения = Справочники.ЕдиницыИзмерения.ПустаяСсылка() и не вызывать функцию ПолучитьКоэфф() вместо проверки РезультатЗапроса.Пустой(), или РезультатЗапроса всегда лучше проверять?

    • Перед получением выборки из запроса по хорошему всегда следует проверять не пустой ли он. Так как попытка получения выборки из результата запроса или ТЗ это довольно тяжелая операция для системы, даже если он пустой.

  6. Добрый день/вечер, Павел.
    Подскажите пожалуйста, галочка БлокироватьДляИзменения актуальна для Бухгалтерских регистов?

    • Очень мало задач где ее можно применить. В основном это внутрискладское перемещение. Методика оперативного проведения для регистров бухгалтерии очень редко применяется.

  7. Не понятно для чего в первой задаче при движении регистра СтоимостьТоваров нужна строка Движения.СтоимостьТоваров.Записать();

    Движения.ОстаткиТоваров.Очистить();            
    Если РежимПроведения = РежимПроведенияДокумента.Оперативный Тогда
        Движения.СтоимостьТоваров.Записать();
    Иначе
        МоментИтогов = МоментВремени();
    КонецЕсли;

    при перепроведении мы очистили движения, а для чего потом записали я не понял, что это дало?

    • Для того чтобы при перепроведении в режиме оперативного проведения старые движения не вошли в результат запроса.

  8. Андрей 03.09.2012 в 22:13

    Добрый день, Павел.

    Применим на экзамене такой подход к организации оперативного учета ( или за такое это поставят “двойку”? ):

    – Заводим последовательность;

    – Проверяем отрицательные остатки и отменяем проведение документа только в оперативном режиме;

    – При не оперативном – двигаем все регистры, даже если остатки отрицательные (зачем лишние запреты, если проведение документа задним числом в общем случае ставит под сомнение правильность проведения последующих документов);

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

    • Была такая мода одно время. В прошлом году один из коллег завалил таким образом сертификацию. Я правда не на 100% уверен что именно из-за этого…

    • Мне нравится решение 1.6 через последовательность.
      Правильно ли?

      Приходная, в ней реквизит “дата поступления” и этот реквизит попадает в регистры.
      Документ сдвигает последовательность на “дату поступления”.
      Последовательность типовыми документами сдвигается только назад

      Далее обработка проведение по партиям. Восстанавливает партии, двигает границу вперед.

      Стоит ли таким образом пытаться решить на экзамене, или не пытаться?

      • Последовательности имеет смысл создавать во всех задачах в которых документы могут вводиться задним числом.

  9. Сергей 01.09.2012 в 13:25

    Здравствуйте Павел.
    У меня возникли вопросы по решению экзаменационной задачи по оперучету(не из учебника, эта задача с экзамена)
    Вот ссылка на её текст:
    https://docs.google.com/document/d/1hcHv3t0xuXQ68lPqGmL49PEKZw4Z2Kem5XeDno4oLzA/edit?pli=1

    Вот выгрузка базы с моим решением: https://docs.google.com/file/d/0B38I37LIt3KQV2pWeUpPQXNIcXc/edit

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

    Нужно ли в регистре оборотов “Продажи” ставить галочку “Разделение итогов”?

    Насколько правильно в оборотном регистре делать движения с пустыми полями? У меня в решении это сделано в

    обработке проведения документа “Дополнительные затраты”.

    В условии есть предложение:
    “В отчете себестоимость должна отражаться с учетом распределенных затрат, вне зависимости от
    того, в каком периоде был введен документ «Дополнительные затраты»”.

    Чтобы выполнить это условие у себя в решении я сделал установку параметра МоментВремени таким образом:
    Запрос.УстановитьПараметр(“МоментВремени”,РасходнаяНакладная.МоментВремени());
    Правильно ли это?

    Там же в обработке проведения “ДополнительныеЗатраты”, в запросе, я сделал отбор по регистратору с помощью

    конструкции:
    ГДЕ
    ПродажиОбороты.Регистратор = &РасходнаяНакладная

    Правильно ли это? или нужно было каким то образом это указывать как параметр виртуальной таблицы.
    У меня так указать, к сожалению, не получилось.

    Заранее спасибо.

    • “Нужно ли в регистре оборотов «Продажи» ставить галочку «Разделение итогов»?” – Для чего Вы хотите ее поставить и почему сомневаетесь?
      “Насколько правильно в оборотном регистре делать движения с пустыми полями?” – ну смотря что за поля. Количество то у Вас не появится от проведения доп.затрат.
      При проведении доп затрат нужно прочитать обороты из регистра с продажами с отбором по регистратору, этот отбор правильнее установить в параметрах виртуальной таблицы.

      • Сергей 03.09.2012 в 10:09

        “Для чего Вы хотите ее поставить и почему сомневаетесь?”

        Как я понял для ускорение доступа к данным в регистре накопления.
        Не знаю насколько это важно будет на экзамене.
        Цитата отсюда http://www.gilev.ru/1c/81/lock/lock.htm :
        «4) В регистре накопления в случаи отсутствия необходимости получить “оперативные” данные можно включить разделение итогов, что повысит параллельность записи данных и ускорит работу в целом.»

        «ну смотря что за поля. Количество то у Вас не появится от проведения доп.затрат.»

        Ага, просто хотелось уточнить, а не является ли это ошибкой в моем случае.

        “При проведении доп затрат нужно прочитать обороты из регистра с продажами с отбором по регистратору, этот отбор правильнее установить в параметрах виртуальной таблицы.”

        Я бы так и сделал, но Условие просто не видит поля “Регистратор”.
        http://i.imgur.com/7HkFe.jpg
        Или нужно сделать ещё одно измерение в регистре?

        Ещё такой вопрос: Правильно ли в оборотном регистре накопления
        “Продажи” иметь ресурс “Количество”?
        Или его нужно было поместить в регистр остатков
        “ОстаткиНоменклатуры”?
        Просто если в продажах не добавить этот ресурс, то потом в отчете
        придется делать запрос не к одной, а к 2 таблицам и устанавливать
        между ними связь.
        Или же это дело вкуса и на экзамене на такое не обращают
        внимание?

        Вопросы про правильность способа установки учетной политики и
        МоментВремени из комментария выше всё ещё интересуют :-)

        • Про регистратор – это я поспешил, это ведь рассчитываемое поле, его в параметрах не установить.

          Про “Количество” в “Продажах” – абсолютно правильно.

          Про “изменить учетную политику” – я делал бы документом, тогда можно нормально последовательности прикрутить.

          Про “МоментВремени” не понял, где это применяется?

          • Сергей 04.09.2012 в 12:24

            “Про «МоментВремени» не понял, где это применяется?”

            В условии сказано: «В отчете себестоимость должна отражаться с учетом распределенных затрат, вне зависимости от
            того, в каком периоде был введен документ «Дополнительные затраты»».

            Применяется в обработке проведения документа
            ДополнительныеЗатраты.

            Устанавливается как параметр виртуальной таблицы
            ПродажиОбороты и устанавливается таким образом:
            Запрос.УстановитьПараметр(«МоментВремени»,РасходнаяНакладная.МоментВремени());
            где РасходнаяНакладная – это реквизит документа
            ДополнительныеЗатраты.

            Хватит ли этого для соответствия условию?

            • Проверьте сами. Введите расходную 1 января, а доп затраты 1 февраля, постройте отчет на январь. Есть в суммах доп затраты?

              • Сергей 06.09.2012 в 15:48

                Нет, сумма не попадала.

                Решил исправить таким образом.
                В коде модуля объекта ДополнительныхЗатрат, в цикле, где делаются записи движений написал:

                Движение.Период = Выборка.Период;

                Где Выборка.Период берётся из виртуальной таблицы ПродажиОбороты.

          • Сергей 04.09.2012 в 17:45

            “Про «Количество» в «Продажах» – абсолютно правильно.”

            Чтобы избежать недоразумений уточню для себя:
            “абсолютно правильно” – это в смысле да, можно в
            РегистреНакопления Продажи иметь ресурс количество? :-)

            А то я задал аж 3 вопроса на эту тему с количеством в
            продажах, боюсь как бы оно относилось не к тому,
            что я подумал.

            • Количество должно быть обязательно в регистре с продажами.

  10. Задача 1.6 непонятная.
    Можно на пальцах методику решения?

    “Складской учет товаров не ведется.
    Списание себестоимости товаров должно быть организовано по партиям, в зависимости от срока годности. В том случае, когда по разным партиям приходил товар с одинаковым сроком годности, в первую очередь необходимо списывать более дорогой (по себестоимости за одну единицу) товар.
    Специфика работы организации заключается в том, что информация о поступлении товаров на склад может происходить значительно позднее самого поступления товаров, при этом документы задним числом не вводятся. Таким образом, возможна ситуация, когда продастся товар, которого в системе еще нет. В решении должна быть реализована возможность подобной продажи товара, отсутствующего (по данным учета) на складе. Запрет продажи товара с «отрицательными остатками» или разрешение определяется учетной политикой организации, которая может меняться только в начале года.
    Документы задним числом вводить нельзя, но можно открыть существующий документ и перепровести его.

    • Также непонятный отчет в задаче 3.20.
      Размер ставки только по подразделению. Где, как берется, зачем?

      • Где: из первой таблицы
        Как берется: запросом
        Зачем: для построения отчета

    • Хм… Давайте попробуем так, Вы сформулируете вопрос(ы) – я на них отвечу. Некоторые формулировки в задачнике меня самого повергают в состояние шока. Эта задача на сертификации имеет другую трактовку, партионный учет там не по стоимости, а по срокам годности.

      • Андрей Буравов 01.09.2012 в 07:58

        У меня также по 1.6 задаче возник вопрос.
        Как правильнее организовать вот этот пункт:
        >> Специфика работы организации заключается в том, что информация о поступлении товаров на склад может происходить значительно позднее самого поступления товаров, при этом документы задним числом не вводятся. Таким образом, возможна ситуация, когда продастся товар, которого в системе еще нет.

        Как организовать возможность списывать с отрицательными остатками понятно. Непонятно как потом правильнее восстанавливать правильность остатков регистра.

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

        Значит при проведении приходной накладной мы должны как-то находить эти записи с пустыми сроком годности и себестоимость и перезаписать их. Как это сделать правильно?

        • При покупки товара нужно заминусовать (сторнировать) те продажи которые можно покрыть этим приходом и сформировать (документом поступления) продажу еще с суммовыми значениями.

          • facedancer 03.09.2012 в 23:48

            Павел, у меня был такой вариант решения задачи 1.6:
            – у приходной реквизит «дата поступления», он же идёт в движения
            – подписка на событие ОбработкаПроведения приходной накладной, которая (в том случае, если дата поступления меньше даты документа) находит расходные по использованной номенклатуре за период с даты поступления (начало дня) по момент времени и просто перепроводит.

            Мне кажется, очень простое решение, и не надо думать о том что регистр может поплыть при перепроведении старых документов, да и сторнировать по-хорошему надо не только записи с пустым сроком годности, а все (сроки годности ведь тоже могут съехать, если в новой приходной более старые товары). Разве что может быть не очень оптимальное в плане быстродействия.

            Такое решение примут на экзамене?

            • Это плохой вариант. При перепроведении документов будет куча транзакций с блокировками таблиц.

  11. facedancer 28.08.2012 в 13:22

    Глупый вопрос по первой задаче, про признак «Услуга».
    Первое, что приходит в голову — создать реквизит «Услуга» у номенклатуры, но потом я решила, что можно сделать проще и добавить флаг Услуга сразу в ТЧ документа «Расходная накладная», т.к. больше эта информация по условию нигде не нужна. Это будет правильно?

    • Не имеет значения. Если Вы можете в обработке проведения обработать любое из этих условий.

  12. Андрей Буравов 27.08.2012 в 09:58

    Павел, как определять исходя из условий задачи – по новой методике проведения ее решать или по старой? Как это можно быстро определить?

    • ВЫБОР КОГДА
      Можно сформировать движения не читая регистр
      ТОГДА новая методика
      ИНАЧЕ старая
      КОНЕЦ КАК Методика решения.

  13. Андрей Буравов 26.08.2012 в 10:56

    Павел, вопрос по второму видео.
    В Вашем решении методика проведения такая:
    – проверяем – нет ли нехватки остатков товаров?
    – Списываем и остатки и себестоимость

    А по новой методике проведения нужно:
    – Списываем остатки
    – Проверяем, не ушли ли остатки в минус

    Или же задача все таки решена правильно?
    Если так, то задачи с партиями нужно решать по старой методике проведения?

    • Подумайте, как мы можем списать партии не читая регистр? Какие партии мы списывать тогда будем?

      • Андрей Буравов 28.08.2012 в 07:16

        Не читая регистра, никак.
        Но можно сделать так:

        1. Получаем остатки из регистра и запросом формируем результат, который можно загрузить через Движения.ОстаткиТоваров.Загрузить(Результат.Выгрузить());
        (сортируем партии в запросе так: http://img19.imageshack.us/img19/1130/35460929.jpg)

        2. Проверяем – не ушли ли остатки в минус вторым запросом с той же временной таблицей ДокТЧ что и для первого запроса (где есть список товаров)

        3. Если ушли – ругаем пользователя о нехватке таких-то товаров и отменяем запись движений через Отказ = Истина.

        По сути это же и будет являться проведением по новой методологии?
        Или если нам приходится дважды обращаться к регистру остатков – это уже означает что будет использоваться старая методика проведения?

        • Нет, новой методикой не будет. Если перед проведением вы читаете регистр (каким либо способом) его надо блокировать о параллельного чтения.

          • Андрей Буравов 30.08.2012 в 06:10

            Заблокировать можно так:

            ЭлементБлокировки.ИсточникДанных = СписокТоваров;
            ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");

            Я не совсем понял что является новой методикой проведения, поскольку думаю ее можно смоделировать почти в любом случае.
            Павел, будьте добры, поясните пожалуйста.

            • “Новая методика” – это когда мы сначала пишем данные в регистр, потом читаем от туда итоги. Очень подробно тут: http://nashe1c.ru/materials-view.jsp?id=321

              • Андрей Буравов 01.09.2012 в 09:19

                «Однако не стоит думать, что такая технология может быть применена повсеместно. На секунду задумайтесь, что в этой задаче необходимо еще и себестоимость рассчитать при списании, и Вы придете к выводу, что необходим «старый» метод контроля остатков.»

                Вот это я и искал. Значит когда есть себестоимость – списываем по старой методике.

  14. Андрей Буравов 26.08.2012 в 10:14

    Вопрос по второму видео.
    Почему в запросе на получение метода списания из учетной политики Вы указали соединение?

    Сравнение соединений:
    http://img577.imageshack.us/img577/5179/93229856.jpg

    • Рекомендуется всегда явно указывать операцию соединения: http://www.sql-ex.ru/help/select5.php?Lang=0

      • Андрей Буравов 28.08.2012 в 06:08

        Снизят ли балл на экзамене если писать так:

        МетодСписания = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(МоментИтогов).МетодСписания;
            Если МетодСписания = Перечисления.МетодыСписания.ПустаяСсылка() Тогда
                Сообщение = Новый СообщениеПользователю;
                Сообщение.Текст = "Не установлена учетная политика!";
                Сообщение.Сообщить();
               
            ИначеЕсли МетодСписания = Перечисления.МетодыСписания.LIFO Тогда
                Запрос.Текст = СтрЗаменить(Запрос.Текст, "//ПорядокСортировки", "УБЫВ");
            КонецЕсли;
        • За что конкретно?

          • Андрей Буравов 30.08.2012 в 06:17

            Во втором видео вы получали МетодСписания через запрос, связывая таблицы со СпискомТоваров и РегистрСведений.УчетнаяПолитика.СрезПоследних.

            Я не совсем понял почему лучше делать именно так, вместо получения МетодаСписания через точку:
            МетодСписания = РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(МоментИтогов).МетодСписания

            Снизят ли балл за то что обращаемся к регистру через точку?
            В синтаксис-помощнике написано что метод ПолучитьПоследнее:
            “Возвращает структуру, содержащую значения ресурсов”.
            А это значит что мы получим только один ресурс – МетодСписания. Так снизят ли балл за обращение через точку к регистру, который хоть запросом, хоть через точку вернет один ресурс?

            • Использование конструкции “РегистрыСведений.УчетнаяПолитика.ПолучитьПоследнее(МоментИтогов).МетодСписания” приведет к выполнению запроса, который сама система сформирует к БД и этим процессом Вы управлять не можете. Лучше использовать обычные запросы для получения любых данных из БД.
              На сертификации важно не использовать много запросов вместо одного. Так что если Вы будете использовать объектную модель для обращения к данным и рядом запрос для получения других данных, то такое решение могут признать неэффективным.

              • Андрей Буравов 01.09.2012 в 08:04

                Отлично разъяснено, спасибо!

  15. Андрей Буравов 25.08.2012 в 13:46

    Павел, 2 вопроса по блокировкам.

    Вопрос № 1
    Если в ИсточникДанных поместили результат запроса и все поля этого запроса совпадают с пространством блокировок (например с регистром ОстаткиТоваров), то имеет ли вообще смысл писать:
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных(“Товар”, “Товар”);
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных(“Склад”, “Склад”);

    Ведь названия итак совпадают?

    Вопрос № 2
    Рекомендуется ли принудительно указывать:
    ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;

    Если режим итак будет по умолчанию исключительным?

    • 1. Названия совпадают, а система об этом не знает, а если и знает не может понять нужен фильтр по данным накладывать или нет. Так что надо.
      2. Это я по привычке. Не очень здорово видеть что свойство по умолчанию поменялось в следующем релизе платформы ;)

      • Андрей Буравов 28.08.2012 в 06:17

        Спасибо большое, все понятно! :)

        • Не будет. Вы будете читать (и необходимо блокировать от грязного чтения) данные из регистра.

  16. Добрый день, Павел.
    У меня вопрос простой. На видео уроке видно, что определенные параметры или слова в коде ЗАПРОСА выделены зеленым или синем цветом. Я понимаю, что в конфигураторе производится настройка, но я все перерыл так и не нашел как сделать это. Подскажите где посмотреть?

    • Этим занимается сторонняя утилита snegopat. Штатных средств, к сожалению, нет.

  17. Екатерина 17.08.2012 в 15:29

    Здравствуйте, Павел. При решении задачи 2.26 из сборника возникли вопросы.
    Должны ли совпадать реквизиты курьер и филиал у ПриходнойНакладной с АвансовымОтчетом?

     Означает ли это высказывание:

    “В том случае, когда курьер получил деньги в кассе одного филиала, а отчитывается за закупку, произведенную для другого филиала, должна сформироваться дополнительная проводка по возврату денег в первый филиал и получения их из кассы другого:
    Дт «Касса» – Km «Сотрудники» на сумму возврата в первый филиал
    Дт «Сотрудники» – Km «Касса» на ту же сумму но выданную из другого филиала”

    а конкретно фраза “а отчитывается за закупку, произведенную для другого филиала”,
    что не должно существовать документа Расход денег по этому филиалу, указанному в ПриходнойНакладной и Авансовом отчете, ведь иначе сумма должна
    планомерно раскидаться по всем филиалам, по которым есть документ РасходДенег? То что оно должно планомерно распределяться исходит из того, что
    в задании сказано: “Сумма, за которую отчитывается курьер, должна быть рассчитана при проведении документа таким образом,
    чтобы полностью погасить долг по выбранной накладной”.

    Т.е. обобщая вышесказанное можно сказать, что существует 2 случая:
    1) По филиалу, по которому отчитываемся нет документа РасходДенег.
    Как результат формируются проводки из условия:
    Дт «Касса» – Km «Сотрудники» на сумму возврата в первый филиал (т.е. мы как будто бы возвращаем сумму выданную курьеру другим филиалом)
    Дт «Сотрудники» – Km «Касса» на ту же сумму но выданную из другого филиала” (и здесь передаем эту же сумму курьеру как если бы у нас был документ “Расход денег”)

    2) По филиалу, по которому отчитываемся, есть документ “РасходДенег”, но суммы на
    этом филиале не хватает, тогда списываем сначала с этого филиала.
    (Это по предложению:
    “В первую очередь с курьера должны быть списаны деньги, которые он забрал в кассе того же филиала, для которого была произведена закупка товара”) . Затем списываем с других филиалов, делая при этому проводку:
    Дт «Поставщики» – Kт «Сотрудники» повторяя её столько раз, на сколько филиалов сумма “залезает”.  Верны ли мои рассуждения???

    В том случае, когда курьер получил деньги в кассе одного филиала, а отчитывается за закупку, произведенную для другого филиала, должна сформироваться дополнительная проводка по возврату денег в первый филиал и получения их из кассы другого:
    Дт «Касса» – Km «Сотрудники» на сумму возврата в первый филиал
    Дт «Сотрудники» – Km «Касса» на ту же сумму но выданную из другого филиала

    • Приветствую.

      1. Я не могу уточнить условия задач, я их читаю так-же как и Вы.
      2. Не следует усложнять себе жизнь надумывая усложненные варианты условий. Как правило на рашение 1й задачи у Вас должно уходить механического времени не более 30 минут. Ну и на обдумывание решения еще минут 15.

      ЗЫ: Если этого комментария мало, ответьте мне, я в понедельник подниму полный текст задачи (или Вы опубликуете в комментарии), попробую более предметно ответить.

      • Екатерина 19.08.2012 в 10:21

        Здравствуйте Павел, вот полный текст задачи 2.26.
        Учет хозяйственных операций в компании ведется в разрезе филиалов, причем учет по филиалам ведется не на всех счетах. Известно, что счета «Касса» и «Поставщики» ведутся в разрезе филиалов, а счета «Товары» и «Товары в пути» общие, без учета филиалов. Аналитика по филиалам на остальных счетах остается на усмотрение разработчика.
        Закупка товаров компании производится курьерами. Факт приобретения товара отражается документом «Приходная накладная», где помимо всего указывается и курьер. Данный документ реализует следующую проводку:
        Дт «Товары» – Km «Поставщики» на сумму поставленного товара.
        Предварительно курьер получает в компании денежные средства (для проведения подобных закупок). При покупке считается, что у курьера есть достаточно денежных средств и контролировать их не надо.
        Выдача денежных средств производится с помощью документа «Расход денег». Документ делает следующую проводку:
        Дт «Сотрудники» – Km «Касса» на указанную в документе сумму.
        Наличие денег в кассе контролировать не нужно. Необходимо учесть, что новая сумма может быть выдана курьеру до того, как он полностью отчитался о старой.
        Курьеры отчитываются о потраченных средствах с помощью документа «Авансовый отчет». В шапке этого документа указывается курьер, филиал и приходная накладная, за которую он отчитывается. Сумма, за которую отчитывается курьер, должна быть рассчитана при проведении документа таким образом, чтобы полностью погасить долг по выбранной накладной.
        Документ «Авансовый отчет» реализует следующие проводки:
        Дт «Поставщики» – Km «Сотрудники» на сумму предоставленную к
        отчету
        В том случае, когда курьер получил деньги в кассе одного филиала, а отчитывается за закупку, произведенную для другого филиала, должна сформироваться дополнительная проводка по возврату денег в первый филиал и получения их из кассы другого:
        Дт «Касса» – Km «Сотрудники» на сумму возврата в первый филиал
        Дт «Сотрудники» – Km «Касса» на ту же сумму но выданную из другого филиала
        Следует учитывать, что деньги курьер мог забирать в различных филиалах. В первую очередь с курьера должны быть списаны деньги, которые он забрал в кассе того же филиала, для которого была произведена закупка товара. Порядок погашения выданных по остальным филиалам денег, за которые отчитывается курьер, остается на усмотрение разработчика.
        По данным бухгалтерского учета необходимо получать отчет о задолженности курьеров перед компанией. Дополнительно, пользователю должна быть предоставлена возможность детализации выводимых в отчет данных до регистратора записи регистра. С другой стороны, данные в отчете могут быть представлены и без этой детализации.
         

        800×600

        Normal
        0

        false
        false
        false

        RU
        X-NONE
        X-NONE

        MicrosoftInternetExplorer4

        /* Style Definitions */
        table.MsoNormalTable
        {mso-style-name:”Обычная таблица”;
        mso-tstyle-rowband-size:0;
        mso-tstyle-colband-size:0;
        mso-style-noshow:yes;
        mso-style-priority:99;
        mso-style-parent:””;
        mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
        mso-para-margin:0cm;
        mso-para-margin-bottom:.0001pt;
        mso-pagination:widow-orphan;
        font-size:10.0pt;
        font-family:”Times New Roman”,”serif”;}

        Задолженность курьеров за период с 01.01.2010 по 31.01.2010
        Сотрудник
        Регистратор
        Долг на начало
        Получено в кассе
        Отчитался
        Долг на конец
        Ононко
         
        1200
        1200
         
         
        Расход денег 1
         
        500
         
         
         
        Расход денег 2
         
        700
         
         
         
        Авансовый отчет 1
         
         
        1200
         
        Бельдыев
        1 000
         
        900
        100
         
        Авансовый отчет 2
         
         
        900
         

        • Реквизиты документов могут отличаться. Курьер может отчитываться по одному филиалу, а деньги брать в другом.

  18. Екатерина 16.08.2012 в 19:17

    Подскажите, а где и как  будут голосовать за следующую  четную задачу?

    • Материалы готовятся к выпуску, подождите буквально пару дней.

  19. Екатерина 12.08.2012 в 15:42

    Возникает ошибки при формировании отчет в задаче 2.35 . 
    В первом случае попыталась указать в СКД произвольный период отчета, после это стала выходить ошибка: {(9, 59)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
     неограниченной длины и поля несовместимых типов.
    РегистрБухгалтерии.РегистрБухгалтерии.Обороты(, , , Счет <<?>>= &Счет, &ВидыСубконто, Субконто2 В (&СписокСтатей), , ) КАК РегистрБухгалтерииОбороты
    Затем сравнила файл отчета в .xml  из вашего решения и свой отчет в .xml 
    Там была разница – в моем отчете был блок:

    </dcscor:item>

    <dcscor:item xsi:type=”dcsset:SettingsParameterValue“>

      <dcscor:parameter>Счет</dcscor:parameter>

    <dcscor:value xsi:type=”v8:StandardPeriod“>

      <v8:variant xsi:type=”v8:StandardPeriodVariant“>Custom</v8:variant>

      <v8:startDate>2012-01-01T00:00:00</v8:startDate>

      <v8:endDate>2012-01-31T23:59:59</v8:endDate>

      </dcscor:value>

      <dcsset:userSettingID>de74225d-5fc1-431d-a0e5-d8737c18122b</dcsset:userSettingID>

    В вашем не было. После его удаления вручную из файла .xml мой  отчет заработал.

    В попытках найти как это удалить в СКД(я вернула старый вариант отчета с тем блоком)
    я пришла ко второму случаю
    после того как в параметрах виртуальной таблицы СКД

    убрала параметр Счет = &Счет
    из
    РегистрБухгалтерии.РегистрБухгалтерии.Обороты(, , , Счет = &Счет, &ВидыСубконто, Субконто2 В (&СписокСтатей), , )
      и заново указала на вкладке Параметры   Счет с типом ПланСчетовСсылка.ПланСчетов и значением ПланСчетов.ПланСчетов.ПрибылиИУбытки
     
     Отчет стал формироваться, но Пустым 
    Как это исправить в СКД, не редактируя вручную файл отчет.xml и не создавая отчет заново.??? 
    2 версии отчета:
    когда выходит ошибка
    http://pastebin.com/UDe4jnb9
    и когда пустой отчет:
    http://pastebin.com/95W29xNT

    • Тут на лицо ошибка платформы. Используйте последнюю. Я не могу прокомментировать ошибки в платформе (как исправить не редактируя).

  20. Задача N3.
    1. При проведении ПРОВЕДЕННОЙ. накладной в вашем решении числом больше чем дата этой накладной то при расчете остатка он вклчает движение самой себя. Т е я так понимаю итоги не пересчитываются. У себя в решении я делаю движение.записать() А какое оптимальное решение?
    2. При формировании запроса в расх. накл. мы получаем партии всех складов. И при выборке может попасться партия другого склада. Для этого ли сделано условие если счетчик = 0 ? И нет существует ли более оптимального запроса в этой задаче при котором в выборке окажутся партии только нужного склада?

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

      2. Есть 2 сценария решания этой задачи. Мне кажется он довольно конкурентный.

  21. Екатерина 06.08.2012 в 17:36

    Здравствуйте, Павел! Скажите пожалуйста, на экзамене при решении задач по Бизнес-процессам, будет ли ошибкой ввод или не ввод избыточных данных для правил адресации?

    • Избыточные данные будут считаться ошибкой.

  22. Екатерина 02.08.2012 в 08:35

    Здравствуйте! Павел подскажите пожалуйста, будет ли на экзамене грубой ошибкой, если
    в одном периоде, начисление премии и оклада будут проводиться разными документами.
    P.S. это по теме пятой задачи из курса, Вы там говорили про некий механизм приоритетов. 

    • Ну, грубой, я бы не назвал такую ошибку. Но если в задаче явно сказано что начисления вводятся одним документом, то приоритеты добавить нужно.
      Приоритет – это реквизит плана видов расчетов (я обычно делаю числом) в зависимости от которого выбирается каким по порядку будет рассчитана запись.

  23. Екатерина 31.07.2012 в 16:50

    Здравствуйте, Павел. Вопрос по теме периодических расчетов. Если премия рассчитывается процентом от начисленного в том же расчетном периоде оклада. Правильно ли получать сумму  начисленного оклада из виртуальной таблицы ОсновныеНачисленияДанныеГрафика ? 
    Вот текст запроса:
    ВЫБРАТЬ
        ОсновныеНачисленияДанныеГрафика.НомерСтроки,
        ОсновныеНачисленияДанныеГрафика.ВидРасчета.СпособРасчета,
        ОсновныеНачисленияДанныеГрафика.Параметр,
        ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ПризнакФактическийПериодДействия, 0) КАК ФактЧасов,
        ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ПризнакПериодДействия, 0) КАК НормаЧасов,
        ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.Сумма, 0) КАК СуммаБаза,
        ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.ОтработаноЧасов, 0) КАК ОтработаноЧасовБаза
    ИЗ
        РегистрРасчета.ОсновныеНачисления.ДанныеГрафика КАК ОсновныеНачисленияДанныеГрафика
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ОсновныеНачисления.БазаОсновныеНачисления(&Измерения, &Измерения, , Регистратор = &Регистратор) КАК ОсновныеНачисленияБазаОсновныеНачисления
            ПО ОсновныеНачисленияДанныеГрафика.НомерСтроки = ОсновныеНачисленияБазаОсновныеНачисления.НомерСтроки
    ;

    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ДопНачисления.НомерСтроки,
        ДопНачисления.ВидРасчета.СпособРасчета,
        ДопНачисления.Параметр,
        0 КАК ФактЧасов,
        0 КАК НормаЧасов,
        ЕСТЬNULL(ОсновныеНачисленияДанныеГрафика.Сумма, 0) КАК Сумма,
        ЕСТЬNULL(ДопНачисленияБазаОсновныеНачисления.ОтработаноЧасовБаза, 0) КАК ОтработаноЧасовБаза
    ИЗ
        РегистрРасчета.ДопНачисления КАК ДопНачисления
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ДопНачисления.БазаОсновныеНачисления(&Измерения, &Измерения, , Регистратор = &Регистратор) КАК ДопНачисленияБазаОсновныеНачисления
            ПО ДопНачисления.НомерСтроки = ДопНачисленияБазаОсновныеНачисления.НомерСтроки
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрРасчета.ДопНачисления.БазаДопНачисления(&Измерения, &Измерения, , Регистратор = &Регистратор) КАК ДопНачисленияБазаДопНачисления
            ПО ДопНачисления.НомерСтроки = ДопНачисленияБазаДопНачисления.НомерСтроки,
        РегистрРасчета.ОсновныеНачисления.ДанныеГрафика КАК ОсновныеНачисленияДанныеГрафика

    • Нет, не правильно. При расчете премии у Вас вообще не должно быть доступа к таблице “ДанныеГрафика” так как премия не может обладать понятием “ПериодДействия”, то есть она не зависит от протяженности и должна регистрироваться в отдельном регистре расчета без включенного флага “ПериодДействия”.
      При расчете премии нужно получать сумму окладов как базу.

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

  24. comsystems 30.07.2012 в 09:41

    Здравствуйте. Есть вопрос. В оперативном учете (задача 1) себестоимость у нас считается без учета склада это я считаю правильным, в бухгалтерском учете (задача 3) себестоимость считается по складам. Правильно ли это?  

    • Тут вопрос спорный, есть 2 трактовки этой задачи. Если нужно исключить склад из расчета себестоимости, то для учета партий нужно создавать еще ресурсы регистра (количествоВПартии).

      • comsystems 31.07.2012 в 13:32

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

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

  25. Уважаемый Павел, добрый день.
    Хотел задать вопрос по задаче 3.31 сборника:
    ЗП работникам начисляется еженедельно по тарифу, исходя из фактически отработаного
    за неделю время, т.е. кол-во часов факт/ кол-во часов норма * тариф за час.
    1. Какую периодичность регистра выбрать?
    2. Как при выбранной периодичности регистра определить кол-во часов норма?
    Условие предусматривает вытеснение оплаты по тарифу – больничным: кол-во часов норма (предидущей недели) * тариф за час.
    3. как определить кол-во часов норма (предидущей недели)?
    На сколько я понимаю, прямое обращение к регистру графика недопустимо?

    Извиняюсь, что задаю вопрос не в ту ветку

    С уважением, Олег Кашира

    • В задаче несколько регистров.
      В том в котором рассчитываются оплаты по тарифу периодичность День, по сути это табель заполняемый оператором.
      В том в котором считаем больничные (в задаче ничего не сказано про то что больничный должен вытеснять оплату по тарифу) – месяц.
      У премий и компенсаций затрат на обмундирование – месяц.
      Норма часов – это показатель базы, его надо записывать в ресурс регистра расчета и потом читать как базу при расчете больничного.

      • Добрый день, Павел,
        Я дейтвительно не понимаю, как найти норму рабочих дней за период некратный
        периоду регистра. По Вашему, выходит, что график для начисления по тарифу
        использовать не надо?, а как надо?
        Павел, Вы знаете, что по данному ворпросу велись бурные дискуссии  на известном
        сайте. Очень хотелось, чтобы Вы поподробнее ответили на мой вопрос о получении
        нормы времени. Очень странно, что этот и подобные вопросы не интересуют
        никого из слушателей, видно я самый тормоз из всех :(. Я считаю, что Вы сами
        должны указывать слушателям на нетривиальные задачи, т.к. мы возможно
        не допонимаем условий некоторых задач, или упрощаем их условия.
        Решенные Вами задачи – это фактически повтор материаллов, представленных
        Вами в бесплатном формате.
        Хотелось, чтобы Вы разобрали хотябы одну сложную задачу, например, 3.31.
        Можно в виде схемы, а не готового решения.
        Очень надеюсь на понимание. Если разбор сложных задач не входит в курс,
        то объявите об этом, и я не буду назойливо писать по-сути одно и тоже, видя, что
        Вы не отвечаете по-существу.
        Простите за резкий тон,

        с уважением, Олег Кашира

        • Ну мы вообще то для этого и устраиваем голосование по задачам. Слушатели выбирают те задачи которые им интересно решать. Чего не особо наблюдалось по задачам из второго раздела.
          В первом потоке мы решали задачу 3.31.
          К сожалению я не могу мониторить все известные сайты, по сему прошу простить мне мою неосведомленность касательно царящих там дискуссий.

          По задаче, я уже отвечал Вам, но повторюсь:
          1. Расчет “По тарифу” считается как факт.часов * тариф. Нормы часов в расчете там нет. Фактическое количество отработанного времени система узнает как? Правильно оператор введет данные о том в какой день и в какую смену, и сколько часов работал сотрудник. Норму часов по смене получить сможете? Поясню, данные нужно брать из данных графика, в регистре расчета должна быть настроена связь с графиком у реквизита “Смена”.
          Итак мы рассчитали оплату по тарифу. Какие данные нам нужно сохранить для дальнейшего расчета? Сумму оплаты по тарифу и норму часов в смене которую должен был отработать сотрудник. Записываем это все в ресурсы регистра. Итак, у нас теперь есть данные базы Сумма и НормаЧасов.
          2. При расчете больничного нам нужно получить БАЗУ за прошлую неделю. В свойствах плана видов расчета в котором у Вас будет считаться больничный нужно настроить зависимость от базы по периоду действия, в этом случае мы получим базу за прошлую неделю, независимо от настройки периодичности регистра расчета в котором у нас хранится оплата по тарифу (пропорционально значению графика).
          3. По остальными видами начислений есть недопонимание как их рассчитать?

          PS: Вы считаете что не следует выкладывать бесплатные материалы, чтобы не было потом неудовлетворительных комментариев к платным материалам о том что темы пересекаются?

          • Уважаемый Павел,
            бесплатные материалы безусловно нужны. Я уже писал, что благодаря Вашим материалам начал хоть что-то понимать и делать. Я и курс решил оплатить, чтобы поддержать Ваши нужные проекты. Я думаю, что все кто готовятся к аттестации их не раз посмотрели, поэтому мне и хочется решений сложных задач. Я думаю, что какие задачи сложные, а какие нет – Вы знаете сами лучше слушателей.
            Я понимаю, что решение тех задач, о которых я спрашиваю, приводится в Продвинутом курсе за 21 тык. Поэтому не буду задавать, как говориться, лишних вопросов…

            • Еще раз обращаю внимание на то что задачи мы выбираем совместно. Не четные выбираю я, четные – слушатели.

  26. Добрый день!
    Вопрос по Задаче №1 . Не до конца ясна причина использования объекта БлокировкаДанных для второго регистра (стоимость) в документе реализация. почему нельзя было также как в первом регистре. Из-за отсутствующего фильтра потому что мы еще не имеем сформированные записи второго регистра? 

    • 1. Да Вы правы, нет еще записей в регистре и мы сами должны установить фильтр у блокировки.
      2. БлокироватьДляИзменения сработает в момент записи данных в регистр, а мы еще ничего не пишем, а лишь читаем, и не хотим допустить проблему “грязного чтения”.

  27.              Здравствуйте, Павел.
    В расчетных задачах, в частности в №6 Вы используете не совсем классический способ записи набора записей регистра расчета.  
                Обычно, после расчета записи регистра расчета используют  метод :
    Записать( , ИСТИНА),  т.е. устанавливая второй параметр в “ИСТИНА”, отключают пересчет фактического периода действия и ввод записей перерасчетов, т.к. эти действия были выполнены в самом модуле документа “НачислениеЗарплаты”, при первоначальной записи движений.
               Ваш метод:  Записать( ,  ,ЛОЖЬ)  отключает расчет фактического периода действия, НО НЕ отключает  ввод записей перерасчета.  С одной стороны, это позволяет нам в обработке по перерасчету, требуемой в некоторых задачах, НЕ удалять после перерасчета записи перерасчета,т.к. они в этом случае удяляются сами.
         Но с другой стороны, не будет ли более оптимальным, использовать такую форму записи :  Записать( ,  ,ЛОЖЬ, ПризнакПерерасчета)  , где ПризнакПерерасчета переменная типа “Булево” – параметр у метода общего модуля, в котором производится расчет?  В этом случае ввод записей перерасчета не будет производиться в общем модуле расчета (т.к. это уже произошло при первоначальной записи движений в документе), если производится обычный расчет, а НЕ перерасчет.  С другой стороны сохранится “бонус” возможности не удалать записи перерасчета, после,собственно, перерасчета (за этот прием Вам спасибо, даже в “Реализации прикладных задач..” записи перерасчета после перерасчета удаляют отдельным кодом). 
         И еще вопрос  касательно перерасчетов. В той же “Реализации прикладных задач” выполняют перерасчет записей в транзакции. У Вас в задаче №6 транзакция в отчете по перерасчету не используется. Нужно ли все-таки ее использовать или нет? 

    Спасибо. 

    • При расчете записей НУЖНО зарегистрировать необходимость перерасчетов зависимых от базы. если мы отключим запись данных перерасчетов, то будет плохо.

      Про транзакцию: Как хотите. Методически не аргументирую ни использование ни неиспользование транзакции.

  28. Екатерина 19.07.2012 в 15:28

    Еще один вопрос,  по 3-й задаче из эталонного решения, почему  в обработке проведения расходной накладной цикл ВыборкаИтоги проходит всегда всего лишь один раз  ?
    Ведь после этого проводка по счету Дт Покупатели  Кт Прибыли и убытки формируется только по первой позиции табличной части расходной накладной и в сумме указана сумма только этой позиции.

    • 1. Потому что это ИТОГИ, ИТОГ ОБЩИЙ, он ОДИН. ВСЕГДА.
      2. Проводка формируется не по первой позиции табличной части, а на ОБЩУЮ СУММУ ДОКУМЕНТА.

      • Екатерина 20.07.2012 в 13:48

        Это понятно, но если проверить документ “Расходная Накладная”, добавить 
        две позиции в табличную часть, то в регистре проводка по счету
        Дт Покупатели  Кт Прибыли и убытки   не формирует проводку на общую сумму
        документа, а только на одну позицию. У вас в примере решений была только
        одна позиция.Попробуйте  пожалуйста в своей решенной базе 3-го задания, 
        добавить в документ расходная накладная больше чем одну позицию, и посмотрите формируемую проводку. У меня на вашей базе, документ формирует проводку
        не на общую сумму документа, а только сумму одной  позицию из документа.

        • Да, там ошибка в запросе. Нужно общую сумму документа брать в последней проводке.

    • >При расчете записей НУЖНО зарегистрировать необходимость перерасчетов зависимых от базы. если мы отключим запись данных перерасчетов,
      то будет >плохо.
      ————————————–
      Согласен, но ведь записи перерасчета, как и формирование фактического периода действия
      УЖЕ ПРОИЗОШЛИ в момент первоначальной записи движений еще в модуле проведения документа Начисления зарплаты:

      <code>Движения.Записать()</code> => Здесь сформировался фактический период действия и ввелись записи перерасчета.

      Поэтому наиболее распространенный вариант(которому учат и на курсах в УЦ) записи рассчитываемого в общем модуле набораа за записей
      выглядит как
      <code>НаборЗаписей.Записать(,Истина)</code> т.е. здесь отключается как формирование фактического периода действия,ТАК И ввод записей перерасчета.

      Недостаток этого метода в том, что записи перерасчета в этом случае не удалятся,если перерасчет производится из обработки перерасчета.
      Если же использовать вариант <code>НаборЗаписей.Записать(,,Ложь)</code>, как в задаче №6, то фактический период формироваться НЕ будет,
      НО записи перерасчета будут повтороно сформированы(!), хотя они уже были введены раньше, при первоначальной записи движений в модуле документа.

      • Ну а если мы производим расчет записей без проведения документа?! И это возможно не только при перерасчетах. Я считаю, что, однозначно, пересчет результата расчета должен инициировать перерасчеты.

  29. Екатерина 18.07.2012 в 17:50

    Здравствуйте, Павел. Вопрос по задаче №3 . Поясните пожалуйста, в обработке проведения документа Перемещение мы у запроса устанавливаем параметр виртуальной таблицы Счет = &Счет, затем мы пишем Запрос.УстановитьПараметр(“Счет”, ПланыСчетов.Хозрасчетный.Товары). Для чего мы это делаем, если в дальнейшем он(Счет) нам не пригодится. И что он именно делает в запросе, может ли получится некорректная выборка если мы этот параметр не будем учитывать?

    • А что значит “в дальнейшем не пригодится”? Нам остатки при перемещении контролировать надо по определенному счету?

      • Екатерина 19.07.2012 в 15:20

        Этот счет используется только для получения результата запроса?
        Просто не заметила как это влияет.

        • В параметрах виртуальной таблицы устанавливается отбор по счету.

              |       ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(
              |               &amp;МоментИтогов,
              |           <strong>    Счет = &amp;Счет,</strong>
              |               &amp;МассивСубконто,
              |               (Субконто1, Субконто3) В
              |                   (ВЫБРАТЬ
              |                       ДокТЧ.Номенклатура,
              |                       ДокТЧ.Склад
              |                   ИЗ
              |                       ДокТЧ КАК ДокТЧ)) КАК ХозрасчетныйОстатки

          Как влияет? Отбор устанавливается. Не укажем получим остатки по всем счетам.

  30. Екатерина 06.07.2012 в 15:55

    И еще один вопрос. по первой задаче, почему при формировании движения в док. Продажа товаров в третьем запросе формула расчета такая  ДокТЧ.Количество/СтоимостьТоваровОстатки.КоличествоОстаток * СтоимостьТоваровОстатки.СтоимостьОстаток 
     
    а не просто СтоимостьТоваровОстатки.СтоимостьОстаток  , ведь ДокТЧ.Количество/СтоимостьТоваровОстатки.КоличествоОстаток по идее всегда равно единице.
    Если я не правильно рассуждаю, то поясните пожалуйста.

    • Вот тема парулетней давности, где ведется полемика с Павлом Белоусовым (он часто принимает аттестационные экзамены), я думаю нет смысла ее перепечатывать здесь.

  31. Екатерина 06.07.2012 в 14:31

    Здравствуйте , Павел. Вопрос по первому заданию. Почему в СКД в  запросе набор данных1 РегистрНакопления.ОстаткиТовара.ОстаткиИОбороты(, , , , {Склад = &Склад}) КАК ОстаткиТовараОстаткиИОбороты
    {Склад = &Склад} идёт пятым параметром? Как наглядно можно увидеть на что это влияет?
     

    • А каким он должен идти? Это условие на измерение регистра накопления.
      Последнее предложение не понятно. Увидеть на что влияет отбор по измерению регистра или на что влияет каким по порядку указан отбор по измерениям? Если про наличие самого отбора, то если указать значение склада, то мы увидим остатки только по одному складу. Если про порядок параметра, то очень наглядно можно провести эксперимент и попробовать указать его в качестве второго или двадцать пятого параметра и увидеть прекрасное окно с синтаксической ошибкой.

      • Екатерина 09.07.2012 в 17:01

        Хорошо, а где в конструкторе запроса можно увидеть, что “Склад” это пятый
        параметр?
         

        • Пятым параметром указывается не “Склад”, а “условие на измерения регистра накопления”, на любое измерение или сочетание измерений. В конструкторе это можно увидеть открыв параметры виртуальной таблицы. Так же можно посмотреть в синтаксис помощнике список параметров виртуальной таблицы, там даже примеры есть.