|
v7: Свертка базы ТИС | ☑ | ||
---|---|---|---|---|
0
DeMi4
08.11.11
✎
19:40
|
Пытаюсь делать свертку базы выгружаю данные из регистра Партии в DBF файл но как быть с ценами ведь есть к примеру 3 товара по 3 рубля и 4 товара по 6 рублей при этом номенклатура одна и таже как быть с этими товарами.
|
|||
1
KRV
08.11.11
✎
19:42
|
Случаем не путаешь себестоимость по партиям с ценами номенклатуры?
|
|||
2
DeMi4
08.11.11
✎
19:42
|
Что если из запроса выгрузить в ТЗ там найти среднее по ценам и выгрузить уже потом в файл
|
|||
3
FN
08.11.11
✎
19:45
|
(2) ничего страшного. Просто получишь себестоимость "по среднему".
Если в условиях задачи это допустимо - то вперед! |
|||
4
DeMi4
08.11.11
✎
19:47
|
А если бы это было недопустимо то что бы вы предложили сделать
|
|||
5
Злопчинский
08.11.11
✎
19:49
|
(2) что же вы убваетесь так, вы же не убьетесь...
. чем штатна ясвертка не угодила? |
|||
6
Злопчинский
08.11.11
✎
19:49
|
(4) посмотри в сторону документов ввода остатков - там все есть!
|
|||
7
FN
08.11.11
✎
19:49
|
(4) после свертки создать две партии, одну по 6, другую по 3
|
|||
8
DeMi4
08.11.11
✎
21:29
|
Вот с помощью такого когда делаю выгрузку в DBF файл есть ли какие то тут ошибки только совсем недвано просто начал более менее серьезно изучать 1С
Процедура Сформировать() Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Фирма = Регистр.ПартииНаличие.Фирма; |МОЛ = Регистр.ПартииНаличие.МОЛ; |Номенклатура = Регистр.ПартииНаличие.Номенклатура; |Партия = Регистр.ПартииНаличие.Партия; |Поставщик = Регистр.ПартииНаличие.Поставщик; |Количество = Регистр.ПартииНаличие.Количество; |СуммаУпр = Регистр.ПартииНаличие.СуммаУпр; |СуммаРуб = Регистр.ПартииНаличие.СуммаРуб; |СуммаБезНДС = Регистр.ПартииНаличие.СуммаБезНДС; |СРозн = Регистр.ПартииНаличие.СРозн; |БазоваяЕдиница = Регистр.ПартииНаличие.Номенклатура.БазоваяЕдиница; |Функция КоличествоКонОст = КонОст(СуммаУпр); |Группировка Номенклатура; |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; //Создадим файл выгрузки Файл=СоздатьОбъект("XBASE"); Файл.ДобавитьПоле("NOMEN","S",70,0); Файл.ДобавитьПоле("KOL","N",15,2); Файл.ДобавитьПоле("SUPR","N",15,2); Файл.ДобавитьПоле("SRUB","N",15,2); Файл.ДобавитьПоле("SROZN","N",15,2); Файл.СоздатьФайл("d:\Work1C\Upload.dbf"); // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей Номенклатура Таб.ВывестиСекцию("Номенклатура"); Файл.Добавить(); Файл.NOMEN=Запрос.Номенклатура.Наименование; Файл.УстановитьЗначениеПоля("KOL",Запрос.Количество); Файл.УстановитьЗначениеПоля("SUPR",Запрос.СуммаУпр); Файл.УстановитьЗначениеПоля("SRUB",Запрос.СуммаРуб); Файл.УстановитьЗначениеПоля("SROZN",Запрос.СРозн); Файл.Записать(); КонецЦикла; // Заполнение полей "Итого" Таб.ВывестиСекцию("Итого"); // Вывод заполненной формы Таб.ТолькоПросмотр(1); Файл.ЗакрытьФайл(); Таб.Показать("Сформировать", ""); КонецПроцедуры |
|||
9
DeMi4
08.11.11
✎
21:29
|
Как все таки это среднее достать
|
|||
10
ТакВотЖе
08.11.11
✎
21:45
|
а нафига в файл выгружать? какое отношение файл имеет к свертке базы?
в запросе у тебя пока что только количество конечное вычисляется, сумм там вообще нет ни одной. |
|||
11
ТакВотЖе
08.11.11
✎
21:46
|
О, прошу пардону, это оказывается сумма у тебя количеством называется)
|
|||
12
DeMi4
08.11.11
✎
21:47
|
Да не там исправить надо. А суть в том что база правленная и решили что остатки из рабочей достанем и запишем их в новую базу поэтому и выгрузка идет в файл
|
|||
13
ТакВотЖе
08.11.11
✎
21:49
|
хм.. ну, если нужны остатки в разрезе партий, то делай группировку по партиям, и по количеству функцию тоже сделай, а то у тебя там вместо количества сейчас чушь пишется.
|
|||
14
ТакВотЖе
08.11.11
✎
21:51
|
хотя, у тебя и вместо суммы сейчас тоже чушь пишется)
|
|||
15
DeMi4
08.11.11
✎
23:06
|
Подскажите пожалуйста используя такой запрос:
Процедура Сформировать() Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Фирма = Регистр.ПартииНаличие.Фирма; |МОЛ = Регистр.ПартииНаличие.МОЛ; |Номенклатура = Регистр.ПартииНаличие.Номенклатура; |Партия = Регистр.ПартииНаличие.Партия; |Поставщик = Регистр.ПартииНаличие.Поставщик; |Количество = Регистр.ПартииНаличие.Количество; |СуммаУпр = Регистр.ПартииНаличие.СуммаУпр; |СуммаРуб = Регистр.ПартииНаличие.СуммаРуб; |СуммаБезНДС = Регистр.ПартииНаличие.СуммаБезНДС; |СРозн = Регистр.ПартииНаличие.СРозн; |БазоваяЕдиница = Регистр.ПартииНаличие.Номенклатура.БазоваяЕдиница; |Функция КоличествоКонОст = КонОст(Количество); |Функция СуммаУпрКонОст = КонОст(СуммаУпр); |Функция СуммаРубКонОст = КонОст(СуммаРуб); |Функция СРознКонОст = КонОст(СРозн); |Группировка Номенклатура; |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Подготовка к заполнению выходных форм данными запроса Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл // Заполнение полей Номенклатура Таб.ВывестиСекцию("Номенклатура"); КонецЦикла; // Заполнение полей "Итого" Таб.ВывестиСекцию("Итого"); // Вывод заполненной формы Таб.ТолькоПросмотр(1); Таб.Показать("Сформировать", ""); КонецПроцедуры И после деления на количество я получу среднюю цену или нет? |
|||
16
zak555
08.11.11
✎
23:10
|
(15) открой отчёт отстатки товаром
там есть "средня цена " |
|||
17
ТакВотЖе
08.11.11
✎
23:11
|
именно её и получишь.
только непонятно, а нафига она тебе?) |
|||
18
DeMi4
08.11.11
✎
23:20
|
Ну а как тогда остатки перенести
|
|||
19
DeMi4
08.11.11
✎
23:20
|
Со средней ценой и перенесу
|
|||
20
ТакВотЖе
08.11.11
✎
23:26
|
вообще-то в документе по вводу остатков нет никакой цены, там как раз сумма.
|
|||
21
DeMi4
09.11.11
✎
09:26
|
Теперь по формированию файла
выполняется следующий код Перем Запрос, ТекстЗапроса, Таб; //Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Период с ВыбНачПериода по ВыбКонПериода; |Фирма = Регистр.ПартииНаличие.Фирма; |МОЛ = Регистр.ПартииНаличие.МОЛ; |Номенклатура = Регистр.ПартииНаличие.Номенклатура; |Партия = Регистр.ПартииНаличие.Партия; |Поставщик = Регистр.ПартииНаличие.Поставщик; |Количество = Регистр.ПартииНаличие.Количество; |СуммаУпр = Регистр.ПартииНаличие.СуммаУпр; |СуммаРуб = Регистр.ПартииНаличие.СуммаРуб; |СуммаБезНДС = Регистр.ПартииНаличие.СуммаБезНДС; |СРозн = Регистр.ПартииНаличие.СРозн; |БазоваяЕдиница = Регистр.ПартииНаличие.Номенклатура.БазоваяЕдиница; |Функция КоличествоКонОст = КонОст(Количество); |Функция СуммаУпрКонОст = КонОст(СуммаУпр); |Функция СуммаРубКонОст = КонОст(СуммаРуб); |Функция СРознКонОст = КонОст(СРозн); |Группировка МОЛ упорядочить по МОЛ.Наименование; |Группировка Номенклатура; |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; // Подготовка к заполнению выходных форм данными запроса Файл=СоздатьОбъект("XBASE"); Файл.ДобавитьПоле("NOMEN","S",70,0); Файл.ДобавитьПоле("MOL","S",100,0); Файл.ДобавитьПоле("KOL","N",15,3); Файл.ДобавитьПоле("SUMMAUPR","N",15,2); Файл.ДобавитьПоле("SUMMARUB","N",15,2); Файл.Добавитьполе("SROZN","N",15,2); Файл.СоздатьФайл("d:\Work1C\Partii.dbf"); Таб = СоздатьОбъект("Таблица"); Таб.ИсходнаяТаблица("Сформировать"); // Заполнение полей "Заголовок" Таб.ВывестиСекцию("Заголовок"); Состояние("Заполнение выходной таблицы..."); Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0); Пока Запрос.Группировка(1) = 1 Цикл Пока Запрос.Группировка(2) = 1 Цикл Таб.ВывестиСекцию("Номенклатура"); Файл.Добавить(); Файл.NOMEN=Запрос.Номенклатура.Наименование; Файл.MOL=Запрос.МОЛ.ПолнНаименование; Файл.KOL=Запрос.КоличествоКонОст; Файл.SUMMAUPR=Запрос.СуммаУпрКонОст; Файл.SUMMARUB=Запрос.СуммаРубКонОст; Файл.SROZN=Запрос.СРознКонОст; Файл.Записать(); КонецЦикла; КонецЦикла; // Заполнение полей "Итого" Таб.ВывестиСекцию("Итого"); // Вывод заполненной формы Таб.ТолькоПросмотр(1); Файл.ЗакрытьФайл(); Таб.Показать("Сформировать", ""); При записи в файл попадают группу как от этого можно избавится чтобы попадали только элементы. |
|||
22
ДенисЧ
09.11.11
✎
09:31
|
|Группировка Номенклатура буз групп;
|
|||
23
DeMi4
09.11.11
✎
09:37
|
а для группировки МОЛ не надо ставить без групп?
|
|||
24
1Сергей
09.11.11
✎
09:48
|
(23) надо, т.к. справочник Сотрудники многоуровневый
|
|||
25
DeMi4
09.11.11
✎
09:55
|
а какие файлы из базы надо удалить перед сверткой
|
|||
26
1Сергей
09.11.11
✎
09:57
|
(25) эээ... Чего удалять? пригласи-ка лучше специалиста
|
|||
27
DeMi4
09.11.11
✎
10:02
|
Ну по методике надо в базе в которую надо переносить остатки надо удалить файлы подскажите какие именно
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |