Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Планирование закупок  (Прочитано 9147 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Crime
Гость
« : 17-02-2010 11:12 » 

Здравствуйте, у меня большая большая проблема:(
Я знаю, что решение не трудно, но сам пока что плохо разбираюсь в 1с программировании.
В общем, суть в том, что в модуле "ПланированиеЗакупок" формируется документ "перемещение со склада на магазин", но иногда бывают такие случаи, что товар, который попадает в документ, отсутствует на складе, можно как-либо сделать, чтобы он сверял то, что он запланировал, с тем что есть на складе, и убирал из документа отсутствующие позиции? Заранее благодарен. Код модуля прилагаю.
« Последнее редактирование: 17-02-2010 17:20 от Sel » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 17-02-2010 11:29 » 

ссылки нерабочие. Прикрепи архив к посту
Записан

Crime
Гость
« Ответ #2 : 17-02-2010 11:33 » 

Извиняюсь, не правильно поставил вопрос...
В результате работы модуля создается документ "заказПоставщику" ,  и мне нужно совместить этот документ с тем, что есть на складе, и убрать позиции, которых нет в наличии в отдельный документ.
Это трудно сделать? Подскажите, что смотреть?

* sample.txt (30.36 Кб - загружено 1272 раз.)
* sample.txt (30.36 Кб - загружено 970 раз.)
« Последнее редактирование: 17-02-2010 17:21 от Sel » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 17-02-2010 11:52 » 

На первый взгляд в коде предусмотрен учет остатков. Почему это не работает - надо долго разбираться, а это не входит в задачи форума.
Пиши что ты понял и задавай конкретные вопросы - тогда постараюсь помочь.
Записан
Crime
Гость
« Ответ #4 : 24-02-2010 09:38 » 

Цитата
Пиши что ты понял и задавай конкретные вопросы - тогда постараюсь помочь.
в результате выше описанной процедуры формируется отчет. как от этого отчета
отнять результаты этого запроса
ЗапросОстатки = СоздатьОбъект("Запрос");
      
      ТекстЗапросаОстатки =
      "//{{ЗАПРОС(Сформировать)
      |Период с ПериодЗапроса по ПериодЗапроса;
      |Номенклатура   = Регистр.ОстаткиТМЦ.Номенклатура,
      |                 Регистр.ПартииОтданные.Номенклатура;
      |Фирма          = Регистр.ОстаткиТМЦ.Фирма,
      |                 Регистр.ПартииОтданные.Фирма;
      |ЮрЛицо         = Регистр.ОстаткиТМЦ.Фирма.ЮрЛицо,
      |                 Регистр.ПартииОтданные.Фирма.ЮрЛицо;
      |УпрАналитика   = Регистр.ОстаткиТМЦ.Фирма.УпрАналитика,
      |                 Регистр.ПартииОтданные.Фирма.УпрАналитика;
      |КолОстатки     = Регистр.ОстаткиТМЦ.Количество,
      |                 Регистр.ПартииОтданные.Количество;";
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #5 : 24-02-2010 10:38 » 

От "отчета" отнять ничего нельзя, даже от "таблицы отчета" отнять нельзя - можно только от "результата запроса для отчета".
А где результат? покажи...
Записан
Crime
Гость
« Ответ #6 : 26-02-2010 09:33 » new

Цитата
   //Создание объекта типа Запрос
      ЗапросЗаявкиЗаказы = СоздатьОбъект("Запрос");
      
      ТекстЗапросаЗаявкиЗаказы =
      "//{{ЗАПРОС(Сформировать)
      |Период с ДатаКонца по ДатаКонца;
      |Номенклатура = Регистр.Заказы.        Номенклатура,
      |               Регистр.Заявки.        Номенклатура,
      |               Регистр.ОстаткиТМЦ.    Номенклатура,
      |               Регистр.ПартииОтданные.Номенклатура;
      |Фирма        = Регистр.Заказы.        Фирма,
      |               Регистр.Заявки.        Фирма,
      |               Регистр.ОстаткиТМЦ.    Фирма,
      |               Регистр.ПартииОтданные.Фирма;
      |ЮрЛицо       = Регистр.Заказы.        Фирма.ЮрЛицо,
      |               Регистр.Заявки.        Фирма.ЮрЛицо,
      |               Регистр.ОстаткиТМЦ.    Фирма.ЮрЛицо,
      |               Регистр.ПартииОтданные.Фирма.ЮрЛицо;
      |УпрАналитика = Регистр.Заказы.        Фирма.УпрАналитика,
      |               Регистр.Заявки.        Фирма.УпрАналитика,
      |               Регистр.ОстаткиТМЦ.    Фирма.УпрАналитика,
      |               Регистр.ПартииОтданные.Фирма.УпрАналитика;
      |ДатаПоступления = Регистр.Заказы.ЗаказПоставщику. ДатаОтгрузки;
      |ДатаОтгрузки    = Регистр.Заявки.ЗаявкаПокупателя.ДатаОтгрузки;
      |КолЗаказа    = Регистр.Заказы.КоличествоПриход;
      |КолЗаявки    = Регистр.Заявки.КоличествоРасход;
      |КолОстатки   = Регистр.ОстаткиТМЦ.    Количество,
      |               Регистр.ПартииОтданные.Количество;";
      
      Если ЕстьАвтор=1 Тогда
         ТекстЗапросаЗаявкиЗаказы = ТекстЗапросаЗаявкиЗаказы +
         "
         |Автор      = Регистр.Заказы.ТекущийДокумент.Автор,
         |             Регистр.Заявки.ТекущийДокумент.Автор,
         |             Регистр.ОстаткиТМЦ.ТекущийДокумент.Автор,
         |             Регистр.ПартииОтданные.ТекущийДокумент.Автор;";
      КонецЕсли;     
      
      Если ЕстьПроект=1 Тогда
         ТекстЗапросаЗаявкиЗаказы = ТекстЗапросаЗаявкиЗаказы +
         "
         |Проект  = Регистр.Заказы.ТекущийДокумент.Проект;
         |          Регистр.Заявки.ТекущийДокумент.Проект,
         |          Регистр.ОстаткиТМЦ.ТекущийДокумент.Проект,
         |          Регистр.ПартииОтданные.ТекущийДокумент.Проект;";
      КонецЕсли;

      ТекстЗапросаЗаявкиЗаказы = ТекстЗапросаЗаявкиЗаказы +
      "
      |Функция КонОст       = КонОст(КолОстатки);
      |Функция КонОстЗаказ  = КонОст(КолЗаказа) Когда (ДатаПоступления <= ДатаНачалаЗак);
      |Функция КонОстЗаявка = КонОст(КолЗаявки) Когда (ДатаОтгрузки    <= ДатаНачалаЗак);
      |Группировка Номенклатура без групп;
      |"//}}ЗАПРОС
      ;
      
      НетОш = 1; // нет ошибок при наложении фильтров
      Если ВидРазделителя = 1 Тогда
         НетОш = НетОш * глФильтрПоПеременнойЗапроса(ТаблицаМФ, "Фирма",        ВыбРазделитель1, "ВыбРазделитель1", ТекстЗапросаЗаявкиЗаказы,"");
      ИначеЕсли ВидРазделителя = 2 Тогда                                                   
         НетОш = НетОш * глФильтрПоПеременнойЗапроса(ТаблицаМФ, "ЮрЛицо",       ВыбРазделитель2, "ВыбРазделитель2", ТекстЗапросаЗаявкиЗаказы,"");
      ИначеЕсли ВидРазделителя = 3 Тогда                                                   
         НетОш = НетОш * глФильтрПоПеременнойЗапроса(ТаблицаМФ, "УпрАналитика", ВыбРазделитель3, "ВыбРазделитель3", ТекстЗапросаЗаявкиЗаказы,"");
      КонецЕсли;
      НетОш = НетОш * глФильтрПоПеременнойЗапроса(ТаблицаМФ, "Номенклатура", ВыбТМЦ, "ВыбТМЦ", ТекстЗапросаЗаявкиЗаказы, "", "СвойстваНоменклатуры");
      НетОш = НетОш * глФильтрПоПеременнойЗапроса(ТаблицаМФ, "Автор",              ,         , ТекстЗапросаЗаявкиЗаказы, "", "Автор");
      НетОш = НетОш * глФильтрПоПеременнойЗапроса(ТаблицаМФ, "Проект",             ,         , ТекстЗапросаЗаявкиЗаказы, "", "Проект");
      
      Если НетОш = 0 Тогда
         Возврат;
      КонецЕсли;
      
      // Если ошибка в запросе, то выход из процедуры
      Если ЗапросЗаявкиЗаказы.Выполнить(ТекстЗапросаЗаявкиЗаказы) = 0 Тогда
         Возврат;
      КонецЕсли;

   КонецЕсли; // установлено получение итогов из остатков
Ну вот  этот запрос судя повсему
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines