Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Код (http://forums.kuban.ru/f1040/kod-8098241.html)

max815 01.12.2016 15:03

Код
 
Помогите кодом
Есть две стрелки на документе нужно чтоб по нажатию одной открывался документ предедущего дня, вперед уже сам догадаюсь как сделать по аналогии. По условию просто дата предедщуего дня. т.е. сейчас открыт документ 01.12 я в форме документа вверху сделал стрелку нужно по ее нажатию чтоб открывалась форма документа от 30.11. (учет идет 1 документ один день)

чтоб не подумали что я лентяй то вот на что мозгов хватило.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Документ.Ссылка
|ИЗ
| Документ.Привет КАК Привет
|ГДЕ
| Привет.Дата = &Дата";

Запрос.УстановитьПараметр("Дата", ТекущаяДата);

РезультатЗапроса = Запрос.Выполнить.Выбрать();
ТекущаяДата = ТекущаяДата -1;

Чучундер 01.12.2016 15:39

и в чем проблема?

max815 01.12.2016 16:00

не фурычит

bma1 01.12.2016 16:07

ТекущаяДата = ТекущаяДата -1;
Какой ужас.... не знать элементарных вещей.... время в 1с измеряется не в днях, а в [b]секундах[/b]....
короче, "Учиться, учиться, унд [filolog]нох[/filolog] айн маль учитья" как говаривал старик Крупский...

VZ 01.12.2016 16:09

Не верный алгоритм: 1. А если предыдущий документ позавчерашний (сеанс на следующем дне после праздника)?
2. Результат [em]ТекущаяДата -1[/em] уменьшит ТекущаяДата на одну секунду ;)
И вообще, достаточно выбрать документ, а дату получить по ссылке сразу в отборе.

user1C 01.12.2016 16:15

зачем?)
зы
семерошник?))

bma1 01.12.2016 16:19

[quote=user1C;43338106]семерошник?[/quote]
тем более учиться... с 7-ки на 8-ку довольно легко переходить. а вот потом обратно, практически нереально...

VZ 01.12.2016 16:19

5-user1C >
[em]"ВЫБРАТЬ
| Документ[b].Ссылка[/b]
|ИЗ
| Документ.Привет [b]КАК[/b] Привет
|ГДЕ
| Привет.Дата = [b]&Дата"[/b];
[/em]

bma1 01.12.2016 16:27

(7) и это тоже... конструктор запросов обычно помогает искать такие примитивные ляпы типа как здесь "ВЫБРАТЬ [u]Документ[/u].Ссылка...

user1C 01.12.2016 16:32

7-VZ >
[em]ТекущаяДата = ТекущаяДата [b]-1[/b];[/em]

shotsdv2008 01.12.2016 17:03

[quote=bma1;43338131] Цитата: Сообщение от user1C семерошник? тем более учиться... с 7-ки на 8-ку довольно легко переходить. а вот потом обратно, практически нереально... [/quote]
Не правда ваша. 77 намного проще в программировании простых вещей.

VZ 01.12.2016 17:12

9-user1C > См.(4). П.2.

user1C 01.12.2016 18:03

11-VZ >См.(5).П.зы
))

bma1 01.12.2016 18:19

[quote=shotsdv2008;43338360]Не правда ваша. 77 намного проще в программировании простых вещей.[/quote]
Потому что слишком привыкаешь ко многим хорошим вещам... типа явного разделения обращения к ссылке и объекту, обходов коллекций (и к ним самим), разделению кода на серверный и клиентский и т.п.

USSR 01.12.2016 19:44

Смешная тема ) Один в документ в день ) А журнала нет что ли ? в в запросе надо просто применить MIN() И MAX на на разницу дат документов. А можно следующий выписывать на основании предыдущего ) Пипец проблема ))

max815 02.12.2016 09:57

Да вот чет не получается ((( хотел попросить пример кода для кнопки (управляемые формы) чтоб при нажатии на нее открывалась форма предедущего документа (думал по дате сделать но чет думаю теперь лучше по номеру документа т.к. выходные\ праздники и будет ошибка)

Helen1986 02.12.2016 10:30

[quote=max815;43341268]но чет думаю теперь лучше по номеру документа т.к. выходные\ праздники и будет ошибка[/quote]

мой брат - деб... пардон, одноэсник [img]http://risovach.ru/upload/2016/05/generator/sovy_114797501_orig_.jpg[/img]

ошибка в номере (исправление руками), помеченный на удаление документ - будем иметь вздрюченного аднаЭсника

perpetum 03.12.2016 07:43

0-max815 > - В 7.7 всё просто - я бы так оформил:

Процедура ПоСтрелкеВверх()

Если Выбран()=0 Тогда //Если текущий документ не записан, нужно записать
Предупреждение("Текущий Документ должен быть записан - Запишите!!",5);
Возврат;
КонецЕсли;

Док=СоздатьОбъект("Документ."+ТекущийДокумент().Вид());
Док.ОбратныйПорядок(1);
Док.ВыбратьДокументы(,ТекущийДокумент());

Док.ПолучитьДокумент();//нашли текущий документ
Док.ПолучитьДокумент();//нашли предыдущий документ

Конт="";
РежимПросмотра=1;//только просмотр
ОткрытьФорму(Док.ТекущийДокумент(),Конт,РежимПросмотра);
КонецПроцедуры //ПоСтрелкеВверх()

//Примечание:
<РежимПросмотра> - необязательный параметр. Числовое выражение:
1 - открыть форму в режиме только просмотра;
0 - открыть форму в режиме редактирования;
-1 (минус единица) - в этом случае используется вариант,
предусмотренный текущим значением параметра ''Режим открытия объектов'',
установленным пользователем интерактивно.

Если использовать текст процедуры отсюда,
необходимо удалить пробелы, проставленный в некоторых местах
местным редактором форума.

perpetum 03.12.2016 07:48

17-perpetum >
Да, пропустил ещё:
//После серии
//Док.ПолучитьДокумент();
//Док.ПолучитьДокумент();
//Проверка на выбран():
Если Док.Выбран()=0 Тогда
Предупреждение("Для выбора Нет предыдущего документа!",5);
Возврат;
КонецЕсли;

MarySue 04.12.2016 09:56

хорош графоманить

max815 04.12.2016 10:42

Спасибо большое, но чет ничего не понятно к примеру ПолучитьДокумент - такого нет в 8.2 и я может неправильно написал но создавать ничего не надо стрелки должно просто открывать предедущей документ по коду

VZ 04.12.2016 12:57

20-max815 > При открытии формируй список документов на разумную глубину.


Текущее время: 08:14. Часовой пояс GMT +3.