В качестве источника данных надо использовать таблицу значений с 2 колонками "Номенклатура" и "Отдел".
Большое спасибо за подсказку. А можно как то проверить результат блокировки? Может как то по точке остановки, или каким то запросом или еще как то? Что бы понимать правильно ли я ставлю блокировку? А то за них баллы яростно снимают.
Решаю задачу из решебника "Спец платформа". Задача 1.8
Условие:"... При продаже товара необходимо в первую очередь контролировать хватает ли товара в данной торговой точке. Если нет - необходимо программно создать документ по перемещению недостающего товара из отдела закупок. В том случае, когда и в отделе закупок товара не хватает, документ для перемещения не создается, а продажа не производится ..."
Вот блокировка для документа "Расходная".
МассивОтделов = Новый Массив;
Блокировка = Новый БлокировкаДанных; ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры"); ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный; ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры; ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура"); МассивОтделов.Добавить(Отдел); Если Перемещение Тогда МассивОтделов.Добавить(Справочники.Отделы.ОтделЗакупок); КонецЕсли; ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Отдел",МассивОтделов); Блокировка.Заблокировать();
Вопрос: Съест ли блокировка в качестве источника массив?
В справке написано, что в качестве блокируемого значения может выступат произвольный диапозон. Вроде массив подходит под описание. Но все же решил спросить, так как проверить правильно установится блокировка или нет не знаю как.
Подскажите правильно ли так блокировать и где есть возможность увидеть результат блокировки?
Задача такая: есть период (месяц январь например). Есть остаток денег на 1 февраля. Есть оборотный регистр куда записаны планируемые поступления по дням на январь.
Вопрос: как получить отчет, в котором будут показаны планируемые остатки по дням с учетом будущих поступлений? Т.е. если на 1е января 1000 а 2го и 5го запланировано еще по 1000 то рещультат такой:
И еще сразу вдогонку. В обычном отчете вывод происходит в табличное поле. При чем вывод происходит автоматически. Можно ли как то результат запроса привязать к таб полю на форме так, что бы он (результат) туда (в таб поле) так же автоматически выводился? Или только создавать макет и выводить через макет?
Пишу инструкцию по работе с основными средствами. То, что мне надо находится во второй части. Но первая тоже надо, т.к. инструкций еще много писать Книга "Конфигурация Управление торговым предприятием редакция1.2 описание" в двух частях за 2011 год. Вот точнее уже некуда. Нашел ее a пдф, но он криво отсканен - сильно большие искажения. Руками перебивать тонну текста не комильфо Если у кого то есть ссылка поделитесь, или можно на почту bilateral(улитка)xakep(точка)ru
Нужна книга из коробки с типовой конфой "Конфигурация Управление торговым предприятием редакция1.2 описание". Такая что бы можно было распознать или еще лучше уже распознанная. Спасибо
Подскажите пожалуйста, где в стандартном отчете (УТП, Продажи) посмотреть сформированный текст в данный момент выполняемого запроса? З.Ы. Наверняка это очень просто, но сделайте снисхождение нубу не трольте а подскажите, а еще подскажите алгоритм, как бы я это мог найти не спрашивая такие глупые sjghjcs на форуме. Заранее спасибо.
Вопрос снят, тайна раскрыта. Т.К. запрос из двух частей, в первой части выбираются товары из расходной, а в ней (в этой самой) расходной они есть, то и в первом пакете есть записи, а уже в результирующем запросе ничего не происходит, т.к. товара нет такого в остатках. Вот и получается, что
Запрос.Выполнить().Пустой() = Ложь
а
Запрос.Выполнить().Выгрузить().Количество = 0
Сам спросил, сам ответил. В результате всем предлагаю перед Выборкой проверять именно на количество строк в результирующем запросе.
Да, все таки стоит вначале в консоли посмотреть, а потом спрашивать Отладчик + консоль = Сила
ВЫБРАТЬ РасходнаяНакладнаяСписокНоменклатуры.Номенклатура КАК Номенклатура, РасходнаяНакладнаяСписокНоменклатуры.Количество, РасходнаяНакладнаяСписокНоменклатуры.Сумма ПОМЕСТИТЬ СписокНоменклатурыДляСписания ИЗ Документ.РасходнаяНакладная.СписокНоменклатуры КАК РасходнаяНакладнаяСписокНоменклатуры ГДЕ РасходнаяНакладнаяСписокНоменклатуры.Ссылка = &Ссылка
СГРУППИРОВАТЬ ПО РасходнаяНакладнаяСписокНоменклатуры.Номенклатура, РасходнаяНакладнаяСписокНоменклатуры.Количество, РасходнаяНакладнаяСписокНоменклатуры.Сумма
ИНДЕКСИРОВАТЬ ПО Номенклатура ;
//////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ УправленческийОстаткиЦены.Субконто1 КАК Номенклатура, УправленческийОстаткиЦены.Субконто2 КАК СрокГодности, УправленческийОстаткиЦены.Субконто3 КАК Цена, СписокНоменклатурыДляСписания.Количество КАК КоличествоСписания, ЕСТЬNULL(УправленческийОстаткиЦены.КоличествоОстатокДт, 0) КАК ИмеющеесяКоличествоЦена, ЕСТЬNULL(УправленческийОстаткиСроки.СуммаОстатокДт, 0) КАК СуммаСрок, ЕСТЬNULL(УправленческийОстаткиСроки.КоличествоОстатокДт, 0) КАК ИмеющеесяКоличествоСрок ИЗ СписокНоменклатурыДляСписания КАК СписокНоменклатурыДляСписания ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки( &Момент, Счет = &Счет, &ВидыСубконто, Субконто1 В (ВЫБРАТЬ СписокНоменклатурыДляСписания.Номенклатура ИЗ СписокНоменклатурыДляСписания КАК СписокНоменклатурыДляСписания)) КАК УправленческийОстаткиЦены ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.Остатки( &Момент, Счет = &Счет, &ВидыСубконто, Субконто1 В (ВЫБРАТЬ СписокНоменклатурыДляСписания.Номенклатура ИЗ СписокНоменклатурыДляСписания КАК СписокНоменклатурыДляСписания)) КАК УправленческийОстаткиСроки ПО УправленческийОстаткиЦены.Субконто1 = УправленческийОстаткиСроки.Субконто1 И УправленческийОстаткиЦены.Субконто2 = УправленческийОстаткиСроки.Субконто2 ПО СписокНоменклатурыДляСписания.Номенклатура = УправленческийОстаткиЦены.Субконто1
УПОРЯДОЧИТЬ ПО УправленческийОстаткиЦены.Субконто2.ГоденДо, УправленческийОстаткиЦены.Субконто3.Цена УБЫВ ИТОГИ МАКСИМУМ(КоличествоСписания), СУММА(ИмеющеесяКоличествоЦена), МАКСИМУМ(СуммаСрок), МАКСИМУМ(ИмеющеесяКоличествоСрок) ПО Номенклатура, СрокГодности
ВидыСубконто = Новый Массив; ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Номенклатура); ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.СрокГодности); ВидыСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконто.Цена); Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);
http://www.ex.ua/view_storage/158584289834 Посмотрите пожалуйста кто хорошо разбирается к коде и дайте оценку правильности... в особенности интересует правильно ли сделал блокировку (а то не знаю как сам проверить). И еще - в отчете по заданию нудно ставить минус когда сумма отгрузок превышает оплаты и плюс если наоборот. Проблема в том что не понимаю как этого добиться. Спасибо
Благодарю, но как то стремно отправляться на экзамен не прорешав ВСЕХ заданий. Тем более, если представить себе, что преподаватель тоже может сказать - думайте как бухгалтер. Придется пропускать, пока не осознаю тайный смысл.
Вот что ответили на другом форуме: "Проблема в том что, приходится программировать то что написано, даже если там опечатка." Так что вопрос снят. Хотят "лысого шмеля и цаплю с хоботом в камышах" - задумываться ПОЧЕМУ не стану.
Задача 2.5. Взаиморасчеты с покупателями ведутся в разрезе договоров. С каждым контрагентом может быть заключено произвольное количество договоров. Задолженность покупателей возникает при отгрузке товара, а погашается при поступлении оплат. Погашение задолженности покупателя (оплата переданного покупателю товара) регистрируется с помощью документа «Приход денег». Оплата может происходить как в счет какого-то договора, так и в счет аванса от данного контрагента. В шапке документа указывается плательщик и сумма платежа. В табличной части документа указываются договоры, в счет погашения долга по которым должна быть отнесена сумма оплаты. Погашение задолженности по договорам должно происходить в том порядке, в котором они указаны в табличной части, и в той части, которая совпадает (или не превышает, если сумма платежа недостаточна) с непогашенной суммой отгрузки но каждому договору. Если сумма платежа превышает сумму задолженности по указанным договорам, то остаток должен быть зачтен как аванс от этого контрагента. Документ «Приход денег» формирует следующие проводки: Дт «Касса» - Km «Покупатели» на сумму оплаты по каждому договору Дт «Касса» - Km «Покупатели» на рассчитанную сумму аванса Отгрузка товаров отражается документом «Расходная накладная». В этом документе в шапке указывается покупатель и договор. Документ «Расходная накладная» формирует следующие проводки: Дт «Покупатели» - Km «Прибыли и убытки» на сумму продажи Дт «Покупатели» - Km «Покупатели» на сумму зачтенного аванса Сумма зачтенного аванса определяется следующим образом: в момент проведения документа «Расходная накладная» должна быть произведена проверка наличия авансов от данного контрагента. При наличии аванса часть его может быть принята в качестве суммы зачтенного аванса, но только в той части, которая не превышает существующий аванс и сумму самой накладной. Пользователю должно быть запрещено указывать не соответствующий контрагенту договор как в документе «Приход денег» так и в документе «Расходная накладная». Необходимо создать отчет о взаиморасчетах с контрагентам по договорам.
Вопрос в следующем: Дт «Покупатели» - Km «Покупатели» на сумму зачтенного аванса - только мне кажется что это неправильно и должно быть что то вроде Дт «ПрибылиИубытки» - Km «Покупатели» на сумму зачтенного аванса, или такое все таки может быть?
Это супер вариант. Главное что он работает, и при этом самое удивительное что ПРАВИЛЬНО. Пробую записаться на курсы по СКД. Если все пойдет ок, у меня уже есть вопросы о том как ЭТО работает, почему и есть ли другие способы. Если что разузнаю, воложу здесь
Это да. Специально никто и н просил делать какое либо описание. Ну а спросить (на случай, если по каким то мифическим причинам оно уже вдруг было), никто ведь по шее не даст? А вдруг таки зайдет.
Как изменить я понял. Изменил.Работает. Не понятно КАК оно работает и почему. Что куда соединяется. Не хочется чувствоваться себя "шаманом нашедшим выброшенный звездолет". Я хочу понять что именно куда присоединили, и почему так, что в итоге получили таблицу, возвращающую тот или иной результат. А главное что еще хочется понять как еще можно использовать такой запрос на практике.
З.Ы. Спасибо за ответ alex040269. Ответ Кэпский, но действенный. Да, буду сам тыкать и смотреть что получится. Просто я думал немного "срезать угол", и если есть почитать уже готовое описание типа: "Берем это соединяем с вот этим.Получаем так. А еще можно было..., а вот если бы мы сделали вот так то получили бы..."
Седний курс я получил, передать во второй набор смогу. А нет ли еще мануала с описанием что в этом запросе присходит (хочется не только пользоваться но и понимать как это работает, и самому суметь повторить если что). Спс. З.Ы. Центр, Таирово, опционально ПосКот. С меня пиво. Заказ принимаю в любую пятницу, начиная со следующей.
Мега спасибо. Нет слов. Был бы барышней, сказал бы, что хочу от Вас детей. Вы случайно не в Одессе живете - готов купить пиво. И да, еще раз спасибо. Вы сделали мой день.
З.Ы. В теме нигде не указан пароль к архиву. Я догадался какой он, но кому то другому может быть не настолько это очевидно...
Выяснил формулу как считать мой среднемесячеый курс:
Берем курс на КАЖДУЮ ДАТУ расчетного периода, в выходные и праздничные дни действует курс НБУ, который дейсвует в предыдущем дне. так, если в пятницу курс НБУ составляет 7,989, а в понедельник 7,565, то в субботу и в воскресенье курс рассчитывается по 7,989.
Вопрос: как в отчете получить таблицу со всеми днями какого либо периода?
Могу создать параметр типа стандартный период, и посчитать разностью дат количество дней между началом и концом периода. Но получить из жтого количества даты вида 05.03.2012, 06.03.2012... не знаю как.
Другой вариант - сделать функцию в общем модуле и потом там в цикле "ПОКА" получать даты от начала до конца периода и возвращать их в ТЗ. В СКД есть такая штука как ИсточникЗапроса:Объект, в который эту ТЗ по идее можно запихать, возвратив из функции. Только вопрос как туда передать параметры начала и конца периода... : \ Или же использовать вычисляемые поля и там указать путь к этой функции и в вычисляемое поле получать результирующую ТЗ, но ппц!!! как ее использовать в запросе отчета
Пожалуйста гуруСКД помогите с этой задачей. Или может есть какой то стандартный метод? Не верю что мне ПЕРВОМУ нужно рассчитать среднемесячный курс?
Подскажите можно ли получить в конфигурации УТП где либо среднемесячный курс валюты. Если да, то где? Если нет то верно ли, что расчитывать его нужно запросом складывая все курсы которые были установлены в заданном периоде, и делить на количество (дней или количество раз установки курса)? Первый аз столкнулся с такой штукой. Сомневаюсь. Благодарю за помощь.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!