Имя: Пароль:
1C
1C 7.7
v7: Запустили "Формирование цен" - пропали розничные цены
0 gugolovski
 
24.08.17
01:59
Выбрали группу товаров, запустили обработку "формирование цен" - установить до себестоимости...
У тех товаров что были остатки цены розничные установились до себестоимости, где остатков не было цены розничные стали нулевыми.

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

Можно ли автоматически откатить эту процедуру?
1 Fram
 
24.08.17
02:12
а ты программист?
2 gugolovski
 
24.08.17
02:17
только учусь
3 Злопчинский
 
24.08.17
02:56
Обходя грабли - ты лишаешься бесценного опыта!
.возможно, что ранее розничная цена считалась как-нить типа "закупочная+X%" - тогда можно попробовать посчитать автоматом розничную....
конечно если и закупочные не грохнули
4 Злопчинский
 
24.08.17
02:59
"выбрали..."
"запустили..."
- кто? сам ты? или пользователь?
как-бы будет наука думать - можно было напрячься перед жмаканием кнопки что себестоимость-то только по остаткам...
.
цены - периодические.
поэтому можно наваять обработочку, которая для розничных цен чистит нулевое значение цены, установленное датой когда вы запускали обработку...
.
можнона ИС порыться, там этих чистилок периодики - вагон всякий
5 gugolovski
 
24.08.17
04:13
(4) Девочка одна. Говорю вот в этом разделе всякие отчеты, посмотри, что можно ими получить. И каким-то образом она в творческом порыве перескочила на формирование цен))..
6 ildary
 
24.08.17
06:09
(5) передай девочке, что если она не умеет работать головой - пусть работает руками (бегает по истории цен и удаляет последнее изменение).
7 SiAl-chel
 
24.08.17
06:52
(0) Если все-таки учащийся программист, то тогда почитай про объект Периодический.
0. !!! Сделай бэкап базы !!!
1. Запустить выборку элементов номенклатуры.
2. Привязывай объект Периодический к элементу.
3. Делай выборку из истории.
4. Ищи значения на нужную дату.
5. Удаляй эти значения.
8 gugolovski
 
24.08.17
06:55
(6) Так и сказал, но после того как она промучалась три часа стало жалко.(
Сделал вот так, вроде работает, но коряво.

//***************
Процедура Сформировать()
спрНоменклатура=СоздатьОбъект("Справочник.Номенклатура");
СпрЦен=СоздатьОбъект("Справочник.Цены");
Период=СоздатьОбъект("Периодический");

спрНоменклатура.ВыбратьЭлементы();
Пока спрНоменклатура.ПолучитьЭлемент()=1 Цикл
Если Строка(спрНоменклатура.Родитель) = "Творог и творожные изделия (0905)"  Тогда
            Если спрНоменклатура.ЭтоГруппа()=0 Тогда
                СпрЦен.ИспользоватьВладельца(спрНоменклатура.ТекущийЭлемент());
                СпрЦен.ВыбратьЭлементы();
                    Пока СпрЦен.ПолучитьЭлемент()=1 Цикл
                        МетСправочник = Метаданные.Справочник("Цены");
                        Для Номер = 1 по МетСправочник.Реквизит() Цикл
                        Если МетСправочник.Реквизит(Номер).Периодический=1 Тогда
                        Период.ИспользоватьОбъект(МетСправочник.Реквизит(Номер).Идентификатор,СпрЦен.ТекущийЭлемент());
                            Период.ВыбратьЗначения();  
                            Пока Период.ПолучитьЗначение()=1 Цикл                    
                                Если Период.ДатаЗнач ='22.08.2017' Тогда
                                     Период.Удалить();
                                     сообщить(спрНоменклатура.ТекущийЭлемент());
                                КонецЕсли;
                            КонецЦикла;  
                    КонецЕсли;
                    КонецЦикла;  
                КонецЦикла;
            КонецЕсли;
КонецЕсли;    
КонецЦикла;
КонецПроцедуры
//********

Если натыкается на цену установленную документом, то прерывается: Период.Удалить();
{C:\USERS\ADMINISTRATOR\DESKTOP\СЧЕТ.ERT(109)}: Значение установлено документом!. Не подскажете как проскочить?
9 SiAl-chel
 
24.08.17
07:18
(8) Либо удаляй внутри Попытки, либо анализируй у объекта Периодический свойство, которое показывает тип установки значения: вручную или документом.
10 SiAl-chel
 
24.08.17
07:23
(8) И лучше использовать не выборку и условие на дату, а специальный метод НайтиЗначение().

Синтаксис:

НайтиЗначение(<Дата>, <Режим>)

Параметры:

<Дата> - Выражение, задающее значение даты, на которую требуется найти периодический реквизит справочника или периодическую константу.

<Режим> - Числовое выражение, значение которого задает режим поиска, если на заданную дату не существует значения периодического реквизита. Если -1 (минус единица) — возвращается значение на предыдущую дату, если 0 — возвращается код завершения неуспешной операции, если 1 — возвращается значение на последующую дату.
11 gugolovski
 
24.08.17
07:31
(9) Уже снял проведение с документов от той даты. И прогнал как есть. А потом провел. Но попробую любопытства ради сделать с НайтиЗначение()
12 Масянька
 
24.08.17
08:40
(8) Сам себе злобный Буратино.
В следующий раз - сначала подумай (ты), а потом уже говори девочке.
13 пипец
 
24.08.17
09:06
хе , как то один пользователь в аналогичной ситуации решил сделать новый прайс (кто понимает) и просто переименовал существующий и цен навбивал , вручную , весело было )))) старого нет уже , новый только через неделю должен работать , а всйо привязано ))))
14 Злопчинский
 
24.08.17
14:37
(8) ну мучилась и мучилась - тебе-то что?
У меня позавчерась одна любительница все делать по принципу треугольных велосипедов косячнула знатно. Косяк заборол, 30 тысяч буду "удержаны" с любителя работать по принципу "а я думала что может быть..."
15 пипец
 
24.08.17
15:21
(14) у нас как то одна финансовая работая в субботу в УРБД ПУБ уфигачила все кассовые документы - наглухо с монопольным входом и очисткой ссылок, из другого финансового в понедельник крики - а где касса !!!! нам отчёт сдавать на стол руководствуууу ))) после небольшого расследования , трудоголичке был задан осторожный вопрос
- удаляли ?
* да
- а зачем ?
* они мне не нужны, мешаются
- а это документы другого финансового отдела...
* ой я не знала что они тоже в базе работают ...
* а можно как то это ? нууу ...
- можно
ЗЫ вот такие продвинутые финансистки
16 Diman_Kr
 
24.08.17
15:23
(8) Если (Период.ДатаЗнач ='22.08.2017') и (Период.ТекущийДокумент().Выбран() =0) Тогда

Не пойдет?
17 SiAl-chel
 
30.08.17
07:30
(15) Гнать нахрен админов базы 1С  и прогеров, если чел имеет к чужим документам доступ более, чем на просмотр.
18 ildary
 
30.08.17
08:41
(15) такие действия (монопольно и с очисткой ссылок) называются "с особым цинизмом".
19 пипец
 
30.08.17
09:14
(17) все доступы устанавливаются опционно по указанию, так что не нужно ляля ... ))
- а если человек сознательно решил себе отстрелить что то всилу любых причин ... его личное дело
ЗЫ  еще из приколов , как то в том же ПУБе тажа финансистка (к слову нач отдела) продвинула ТЗ по изменению плана счетов, на что было три раза переспрошено в разной форме ... зачем ? с уточнениями, что не стОит!! в середине периода удалять субконто из счёта, на что было отвечено !!! делайте (в письменном виде)
- когда высшее руководство не смогло получить отчет за старый период по данному счёту в разрезе субконто, было весело, восстановили , фигня вопрос, даже без перепроведения документов , НО фантазия данного пользователя доставляла и впредь ... некоторое время
20 Злопчинский
 
30.08.17
13:42
(19) это что... у меня сейчас на складе свистопляска идет, АУП сменился, по управлению персоналом двоевластие - сижу весь день на удаленке, мониторю, по рукам бью... а денежки-то капают...