8.х работа с датой

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем r-d-v2008, 15 ноя 2010.

  1. TopicStarter Overlay
    r-d-v2008
    Offline

    r-d-v2008 Опытный в 1С

    Регистрация:
    16 сен 2010
    Сообщения:
    272
    Симпатии:
    0
    Баллы:
    26
    Вот например
    дата(год) |кол-во |сумма
    2009 | 5 | 56
    2009 |56 | 2
    2009 |23 | 56
    2010 |23 | 102
    2010 |5 | 10
    и т.д
    как мне подитожить
    за 2009 год и за 2010 год кол-во и сумму
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Выгрузить в ТаблицуЗначений и свернуть по году
  3. Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Взять Год от Даты и сгруппировать по нему. По идее.. :)
  4. TopicStarter Overlay
    r-d-v2008
    Offline

    r-d-v2008 Опытный в 1С

    Регистрация:
    16 сен 2010
    Сообщения:
    272
    Симпатии:
    0
    Баллы:
    26
    Как именно это сделать :angry:
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    В вашем примере таблица это что?
  6. Korolev
    Offline

    Korolev Опытный в 1С

    Регистрация:
    20 апр 2010
    Сообщения:
    269
    Симпатии:
    0
    Баллы:
    26
    Если так, то делаете запрос, а дату в запросе берете так: ГОД(Дата)

    Затем:
    Код:
    ТЗ = Запрос.Выполнить().Выгрузить();
    ТЗ.Свернуть("Дата","КолВо,Сумма");
    
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    r-d-v2008, данные из первого поста откуда у вас берутся?
    Если это запрос - покажите текст.
  8. TopicStarter Overlay
    r-d-v2008
    Offline

    r-d-v2008 Опытный в 1С

    Регистрация:
    16 сен 2010
    Сообщения:
    272
    Симпатии:
    0
    Баллы:
    26
    Таблица это отчет

    Код:
    
    Функция КнопкаСформироватьНажатие(Кнопка)
    
    ТабЗнач = Новый ТаблицаЗначений();
    ТабЗнач.Колонки.Добавить("Документ");
    ТабЗнач.Колонки.Добавить("ДокументПост");
    ТабЗнач.Колонки.Добавить("Дата");
    ТабЗнач.Колонки.Добавить("Номер");
    ТабЗнач.Колонки.Добавить("Грузополучатель");
    ТабЗнач.Колонки.Добавить("Контрагент");
    ТабЗнач.Колонки.Добавить("Количество");
    ТабЗнач.Колонки.Добавить("Колво");
    ТабЗнач.Колонки.Добавить("Сумма");
    ТабЗнач.Колонки.Добавить("СуммаПост");
    Запрос = Новый Запрос; 
    Запрос.Текст =           
    "ВЫБРАТЬ
    |	РеализацияТоваровУслугТовары.Ссылка,
    |	РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
    |	РеализацияТоваровУслугТовары.Цена КАК Цена,
    |	РеализацияТоваровУслугТовары.Сумма КАК Сумма,
    |	РеализацияТоваровУслугТовары.СуммаНДС КАК СуммаНДС,
    |	РеализацияТоваровУслугТовары.Количество КАК Количество,
    |	РеализацияТоваровУслугТовары.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмеренияНаименование,
    |	РеализацияТоваровУслугТовары.СерияНоменклатуры.СерийныйНомер КАК Серия,
    |	РеализацияТоваровУслугТовары.Ссылка.Дата КАК дата
    |ИЗ
    |	Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
    |ГДЕ
    |	РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон
    |	И РеализацияТоваровУслугТовары.Ссылка.Проведен";
    
    
    Запрос.УстановитьПараметр("ДатаНач", ДатаНач);                                 
    Запрос.УстановитьПараметр("ДатаКон", КонецДня(ДатаКон));
    
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    
    ТабДокумент  = Новый ТабличныйДокумент;
    
    // Зададим параметры макета
    ТабДокумент.ПолеСверху              = 0;
    ТабДокумент.ПолеСлева               = 5;
    ТабДокумент.ПолеСнизу               = 0;
    ТабДокумент.ПолеСправа              = 5;
    ТабДокумент.РазмерКолонтитулаСверху = 0;
    ТабДокумент.РазмерКолонтитулаСнизу  = 0;
    ТабДокумент.АвтоМасштаб             = Истина;
    ТабДокумент.ОриентацияСтраницы      = ОриентацияСтраницы.Портрет;
    ТабДокумент.ИмяПараметровПечати = "Отчет";
    Макет = ПолучитьМакет("Отчет");
    
    
    
    Пока Выборка.Следующий() Цикл
    Если ( проект=Выборка.Номенклатура)
    или (проект=Справочники.Номенклатура.ПустаяСсылка()) тогда
    дата=год(выборка.дата);
    
    СтрокаТаблицы = ТабЗнач.Добавить();
    СтрокаТаблицы.Документ=Выборка.Ссылка;
    СтрокаТаблицы.Количество=Выборка.Количество;
    Если  Выборка.Ссылка.СуммаВключаетНДС тогда
    СтрокаТаблицы.Сумма=Выборка.сумма;
    Иначе
    СтрокаТаблицы.Сумма=Выборка.Сумма+Выборка.СуммаНДС;
    КонецЕсли;
    Если Выборка.Ссылка.Грузополучатель=Справочники.Контрагенты.ПустаяСсылка() тогда
    СтрокаТаблицы.Грузополучатель=Выборка.Ссылка.Контрагент;	
    Иначе
    СтрокаТаблицы.Грузополучатель=Выборка.Ссылка.Грузополучатель;	
    КонецЕсли;
    
    КонецЕсли;
    КонецЦикла;
    
    Запрос = Новый Запрос;
    
    Запрос.Текст ="ВЫБРАТЬ
    |    ПоступлениеТоваровУслугТовары.Ссылка,
    |    ПоступлениеТоваровУслугТовары.Количество КАК колво,
    |    ПоступлениеТоваровУслугТовары.Сумма КАК суммапост,
    |    ПоступлениеТоваровУслугТовары.СуммаНДС КАК СуммаНДС,
    |    ПоступлениеТоваровУслугТовары.Номенклатура,
    |    ПоступлениеТоваровУслугТовары.Ссылка.Контрагент,
    |    ПоступлениеТоваровУслугТовары.Ссылка.НомерВходящегоДокумента как серия
    |ИЗ
    |    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары";
    Результат = Запрос.Выполнить();
    Выборка = Результат.Выбрать();
    Пока Выборка.Следующий() Цикл
    
    Если ( проект=Выборка.Номенклатура)
    или (проект=Справочники.Номенклатура.ПустаяСсылка()) тогда
    ДокументПост=Выборка.ссылка;
    Контрагент=выборка.контрагент;
    колво=выборка.колво;
    серия=выборка.серия;
    Если  Выборка.Ссылка.СуммаВключаетНДС тогда
    Суммапост=Выборка.суммапост;
    Иначе
    Суммапост=Выборка.Суммапост+Выборка.СуммаНДС;
    КонецЕсли;	
    конецесли; 
    конеццикла;				   
    
    
    ОбластьСтрока1=Макет.ПолучитьОбласть("Строка1");
    ОбластьГр=Макет.ПолучитьОбласть("Гр");
    ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьШапка1 = Макет.ПолучитьОбласть("Шапка1");
    ОбластьШапка2 = Макет.ПолучитьОбласть("Шапка2");
    ОбластьСтрока1.Параметры.ДокументПост=ДокументПост;
    ОбластьСтрока1.Параметры.Контрагент=Контрагент;
    ОбластьСтрока1.Параметры.колво=колво;
    Областьстрока1.Параметры.суммапост=суммапост;
    Областьстрока1.Параметры.серия=серия;
    ОбластьШапка.Параметры.ДатаНач =  Формат(ДатаНач, "ДФ='дд.ММ.гггг ""г.""'");
    ОбластьШапка.Параметры.ДатаКон =  Формат(ДатаКон, "ДФ='дд.ММ.гггг ""г.""'");
    ОбластьШапка.Параметры.Договор =  проект;
    ТабДокумент.Вывести(ОбластьШапка);
    ТабДокумент.Вывести(ОбластьШапка1);
    ТабДокумент.Вывести(ОбластьСтрока1);
    
    ТабДокумент.Вывести(ОбластьШапка2);
    ОбластьМакета           = Макет.ПолучитьОбласть("Строка");
    ОбластьПодвала          = Макет.ПолучитьОбласть("Подвал");
    ном=0;
    ИтогоСумма=0;
    ИтогоКоличество=0;
    ИтогоКоличествоПост=0;
    ИтогоСуммаПост=0;
    стараядата=год("31.12.2009 23:59:99");
    КолГР=0;
    СуммГР=0;
    k=0;
    ТабЗнач.Сортировать("Дата");
    ТекГрузополучатель = Неопределено;
    ИтогоГрузополучатель = 0;
    ТабДокумент.Вывести(ОбластьМакета, 2);
    ТабДокумент.НачатьАвтогруппировкуСтрок();
    Для каждого ТекСтрока из ТабЗнач Цикл
    ном=ном+1;
    ТекДата = ТекСтрока.Дата; 		
    докгр= текстрока.документ;
    ОбластьМакета.Параметры.Заполнить(ТекСтрока);
    если k=0 тогда
    //	 стараядата=текстрока.дата;
    k=1;
    конецесли;
    
    Если стараядата= текстрока.дата тогда
    ном=1;
    СуммГР=СуммГр+текстрока.сумма;
    КолГр=КолГр+текстрока.количество;
    ОбластьГр.Параметры.Суммгр=СуммГР;
    ОбластьГр.Параметры.КолГр=КолГр;
    ОбластьГР.Параметры.докгр=докгр;
    ТабДокумент.Вывести(ОбластьГр);
    КолГР=0;
    СуммГР=0;
    стараядата=текстрока.дата;
    конецесли;
    ТабДокумент.Вывести(ОбластьМакета, 2);
    ИтогоСумма = ИтогоСумма + ТекСтрока.Сумма;
    ИтогоКоличество= ИтогоКоличество + Текстрока.Количество;
    ИтогоКоличествоПост=колво - ИтогоКоличество;
    ИтогоСуммаПост=суммапост-ИтогоСумма;
    КонецЦикла;
    ТабДокумент.ЗакончитьАвтогруппировкуСтрок();
    //	СуммГР=СуммГр+текстрока.сумма;
    //	КолГр=КолГр+текстрока.количество;
    ОбластьГр.Параметры.Суммгр=СуммГР;
    ОбластьГр.Параметры.КолГр=КолГр;
    ОбластьГР.Параметры.докгр=докгр;
    //ТабДокумент.Вывести(ОбластьГр);
    ОбластьПодвала.Параметры.ИтогоСумма = ОбщегоНазначения.ФорматСумм(ИтогоСумма);
    ОбластьПодвала.Параметры.Итогоколичество=Итогоколичество;
    ОбластьПодвала.Параметры.ИтогоколичествоПост=ИтогоколичествоПост;
    ОбластьПодвала.Параметры.ИтогосуммаПост=ИтогосуммаПост;	
    ТабДокумент.Вывести(ОбластьПодвала, 1);
    
    ТабДокумент.Показать("Отчет по продажам");
    КонецФункции
    
    Процедура ВыбПериодНажатие(Элемент)
    НастройкаПериода = Новый НастройкаПериода;
    НастройкаПериода.УстановитьПериод(ДатаНач, ?(ДатаКон='0001-01-01', ДатаКон, КонецДня(ДатаКон)));
    НастройкаПериода.РедактироватьКакИнтервал = Истина;
    НастройкаПериода.РедактироватьКакПериод = Истина;
    НастройкаПериода.ВариантНастройки = ВариантНастройкиПериода.Период;
    Если НастройкаПериода.Редактировать() Тогда
    ДатаНач = НастройкаПериода.ПолучитьДатуНачала();
    ДатаКон = НастройкаПериода.ПолучитьДатуОкончания();
    КонецЕсли;
    КонецПроцедуры
    
    
    
  9. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Только теперь опишите, что это делает, что в итоге должно получится?
    Зачем у вас там таблица значений, что вы хотите увидеть в итоге?
  10. TopicStarter Overlay
    r-d-v2008
    Offline

    r-d-v2008 Опытный в 1С

    Регистрация:
    16 сен 2010
    Сообщения:
    272
    Симпатии:
    0
    Баллы:
    26
    Вот обработка можете посмотреть
    А нужно мне чтобы подитоживало по году колличество и сумму

    Вложения:

  11. TopicStarter Overlay
    r-d-v2008
    Offline

    r-d-v2008 Опытный в 1С

    Регистрация:
    16 сен 2010
    Сообщения:
    272
    Симпатии:
    0
    Баллы:
    26
    Ну что даже никто не поможет :angry:
  12. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Поможет. Если теперь распишите на словах задачу.

    1) В чем суть отчета (распишите что должно брать, исходя из каких начальных условий, что должно выводить)?
    2) По какому принципу берется Документ Поступления? (насколько я сейчас вижу - вы берете последний попавшийся с данной номенклатурой, и подставляете его). И еще что такое "проект"?
    3) Конфигурацию скажите.
  13. TopicStarter Overlay
    r-d-v2008
    Offline

    r-d-v2008 Опытный в 1С

    Регистрация:
    16 сен 2010
    Сообщения:
    272
    Симпатии:
    0
    Баллы:
    26
    1)Все что надо оно берет и выводит
    Задача состоит в следующем по номенклатуре выдать карточку о продажах
    т.е выбирается номенклатура, выбирается период
    выводится поступление номенклатуры: т.е документ, дата, количество поступившего товара и его сумма
    дальше выводится реализация: т. е документ с датой колличество проданного товара и сумма проданного товара
    в конце отчета выводится сколько всего продано товара и на какую сумму
    и сколько осталось товара и на какую сумму
    так как я поступление было в 2009 году и некоторые реализации тоже в 2009 году
    то если я выберу период за 2010 год у меня неправильно формируются остатки
    допустим в 2009 году пришло 34 пары носков (образно) в этом же году было продано 4 пары
    то когда выбирается период за 2010 год должно в верхней строке быть 30 а меня 34 и поэтому остатки формируются не правильно, но на это я забил
    и поэтому я выбираю период за два года
    МНЕ НУЖНО ЧТОБЫ ПОДИТОЖИВАЛОСЬ колличество проданного товара и его стоимость за год
    допустим
    дата|кол-во|сумма|
    2009год| 2 |354
    2009год 2 354
    вот здесь должен быть подитог
    всего за 2009 год| 4|708
    и точно также за 2010 год
    3)Конфа управление торговлей
  14. TopicStarter Overlay
    r-d-v2008
    Offline

    r-d-v2008 Опытный в 1С

    Регистрация:
    16 сен 2010
    Сообщения:
    272
    Симпатии:
    0
    Баллы:
    26
    Люди ну помогите пожалуйста ну очень надо если сегодня не сделаю завтра пизд...получу. Я вас умоляю ну помогите пожалуйста
  15. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    У вас же не считается количество в приходе! У вас берется последняя приходная накладная с этим товаром и подставляется количество из этого прихода и все! Какой же вы остаток хотите получить?

    Это раз. И два - с каких пор остатки считаются по документам? Если вам нужен остаток на начало периода, то используйте либо регистр "СвободныеОстатки", либо "ТоварыНаСкладах", либо "Товары Организаций". Следующий пункт - ну кто смотрит продажи по документам? Используйте РН "Продажи". Далее зачем выбирать приходные документы? Во-первых см. выше, про то что у вас не считается количество в приходе, во вторых, используйте РН "Закупки".
    Почему у вас нигде нету отбора по организации?
  16. TopicStarter Overlay
    r-d-v2008
    Offline

    r-d-v2008 Опытный в 1С

    Регистрация:
    16 сен 2010
    Сообщения:
    272
    Симпатии:
    0
    Баллы:
    26
    Я от количества поступившего товара отнимаю количество проданного

    Тогда помогите составить запрос :angry:
  17. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Угу.. А суммовой остаток на конец периода у вас считается исходя из чего? Поступление ведь может быть по разным ценам.
  18. TopicStarter Overlay
    r-d-v2008
    Offline

    r-d-v2008 Опытный в 1С

    Регистрация:
    16 сен 2010
    Сообщения:
    272
    Симпатии:
    0
    Баллы:
    26
    Ну тогда что сделать? Помогите пожалуйста
  19. TopicStarter Overlay
    r-d-v2008
    Offline

    r-d-v2008 Опытный в 1С

    Регистрация:
    16 сен 2010
    Сообщения:
    272
    Симпатии:
    0
    Баллы:
    26
    Вот так всегда надеешься ждешь, что тебе кто нибудь поможет, а они вот те нате хрен в томате
    по высказывали, по критиковали и бросили на произвол судьбы. Спасибо вам люди добрые, низко кланяюсь вам.
  20. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не нервничайте. Я тоже 24 часа в сутки на форуме, да еще и непрерывно - не могу проводить.

    В итоге, все что я понял (насколько я понял, если не так - поправляйте сразу): вам нужен реестр документов "Реализация товаров и услуг" и "Поступление товаров и услуг" за произвольно задаваемый период. В реестре по каждому документу должны присутствовать "наименование документа", "дата", "количество поступившего товара", "сумма". Этот реестр также должен показывать остаток товара на конец периода.
    Далее, судя по всему этот реестр помимо количественного остатка на конец периода, должен показывать суммовой.
    Вопросы:
    1) По каким ценам должна быть суммовая оценка на конец периода?
    2) Ведется ли учет в разрезе складов?
    3) Ведется ли учет в разрезе организаций?
    4) В каком виде это должно выводится? (так как в вашем отчете: сначала все поступления потом реализация, или же в хронологическом порядке)

Поделиться этой страницей