Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: 1С для программиста

  Все выпуски  

RusFAQ.ru: 1С для программиста


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / 1С для программиста

Выпуск № 458
от 01.04.2007, 09:35

Администратор:Калашников О.А.
В рассылке:Подписчиков: 351, Экспертов: 55
В номере:Вопросов: 4, Ответов: 11


Вопрос № 79787: Здравствуйте! Подскажите пожалуйста, как мне в данной процедуре высчитать минимальное значение типа: Выпуск=Мин(МожноВыпустить)? Спасибо!...
Вопрос № 79803: Доброго времени суток господа эксперты. Имеется справочник со следующими полями: НомерСчета (формат 00000000000000000000/00), ФИО,Сумма. Нужно написать код чтобы данные вугражались в файл формата *.txt следующей структуры: НомерСчета,ФИО,Сумма. Разде...
Вопрос № 79876: Здравствуйте! При записи число из колонки Стоимость многострочной части документа сохраняется в справочнике Номенклатура. Правильно я описала или можно как-то по-другому описать эту процедуру? Спасибо огромное заранее....
Вопрос № 79899: Здравствуйте. Вопрос по 1С 7.7 На форме расположен список зачений. Можно ли программно изменять его размер на форме (количество видимых строк) и как это сделать...

Вопрос № 79.787
Здравствуйте! Подскажите пожалуйста, как мне в данной процедуре высчитать минимальное значение типа: Выпуск=Мин(МожноВыпустить)? Спасибо!

Приложение:

Отправлен: 26.03.2007, 13:36
Вопрос задала: Darina (статус: Посетитель)
Всего ответов: 2
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Татьяна Ласовская
Здравствуйте, Darina!
Примерно так, я внесла исправления в Ваш код:

Приложение:

Ответ отправила: Татьяна Ласовская (статус: 4-ый класс)
Ответ отправлен: 26.03.2007, 13:53
Оценка за ответ: 4

Отвечает: Шахрайчук Владимир Анатольевич
Здравствуйте, Darina!
Таб = СоздатьОбъект("Таблица");
МинМожноВыпустить=99999999999;
МаксМожноВыпустить=0;

МожноВыпустить=Цел(Остаток/Норма/1000);
Если МожноВыпустить<МинМожноВыпустить Тогда
МинМожноВыпустить=МожноВыпустить;
КонецЕсли;
Если МаксМожноВыпустить<МожноВыпустить Тогда
МаксМожноВыпустить=МожноВыпустить;
КонецЕсли;

КонецЦикла;
Если МинМожноВыпустить=99999999999 Тогда
Нельзя ничего выпустить
Иначе
Выпуск=
КонецЕсли;
ВыпускМакс=МаксМожноВыпустить;

Дарина! Алгоритмы выбора минимального и максимального, сортировки, сложных условий есть базовые знания, которые нужно ПОМНИТЬ НАИЗУСТЬ. Их изучают на первом курсе. К сожалению, я не знаю, где можно прочитать про базовые знания, ни в одном учебнике я этого не видел. Сам я об этих алгоритмах узнал от одноклассников, ну а Вы, соответственно, можете узнать здесь.
Удачи!
Ответ отправил: Шахрайчук Владимир Анатольевич (статус: Студент)
Ответ отправлен: 26.03.2007, 13:59
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Всё получилось как надо!


Вопрос № 79.803
Доброго времени суток господа эксперты. Имеется справочник со следующими полями: НомерСчета (формат 00000000000000000000/00), ФИО,Сумма. Нужно написать код чтобы данные вугражались в файл формата *.txt следующей структуры: НомерСчета,ФИО,Сумма. Разделитель запятая, пробелы только между фамилией именем и отчеством. Заранее благодарен.
Отправлен: 26.03.2007, 15:11
Вопрос задал: Шмачков (статус: Посетитель)
Всего ответов: 3
Мини-форум вопроса >>> (сообщений: 6)

Отвечает: Gl0betrotter
Здравствуйте, Шмачков!
Для подобных операций используются СписокЗначений и функции ВСтрокуСРазделителями() и ИзСтрокиСРазделителями().

Пример кода:

Перем Спс, Спр, Тхт, Стр, ИмяФайла; // переменные
Спс=СоздатьОбъект("СписокЗначений"); // список значений
Тхт=СоздатьОбъект("Текст"); // текст, который запишем в файл
ИмяФайла="C:WindowsTempReference_Values.txt"
Спр=СоздатьОбъект("Справочник.НашСправочник"); // наш справочник
Спр.ВыбратьЭлементы(); //выбираем элементы
Пока Спр.ПолучитьЭлемент()>0 Цикл
Если Спр.ЭтоГруппа()=1Тогда // группы пропускаем
Продолжить;
КонецЕсли;
Стр=""; // очищаем строку
Спс.УдалитьВсе(); // очищаем список
Спс.ДобавитьЗначение(Спр.НомерСчета); // добавляем НомерСчета
Спс.ДобавитьЗначение(Спр.ФИО); // добавляем ФИО
Спс.ДобавитьЗначение(Спр.Сумма); // добавляем Сумма
Стр=Спс.ВСтрокуСРазделителями(); // конвертируем в строку
Тхт.ДобавитьСтроку(Стр); // добавляем строку в текст
КонецЦикла; // Спр.ПолучитьЭлемент()
Тхт.Записать(ИмяФайла); // записываем текст в файл
Удачи!
Ответ отправил: Gl0betrotter (статус: Студент)
Ответ отправлен: 26.03.2007, 15:36

Отвечает: BigHard
Здравствуйте, Шмачков!
посмотрите вопросы № 55508 и №54852
http://rusfaq.ru/info/Question/55508
http://rusfaq.ru/info/Question/54852

в приложении цитата вопроса 55508

Приложение:

---------
Чем отличается чайник от программиста: У чайника в одном килобайте 1000 байт, а у программиста в одном километре 1024 метра

Ответ отправил: BigHard (статус: 6-ой класс)
Ответ отправлен: 26.03.2007, 16:01

Отвечает: Strawberry
Здравствуйте, Шмачков!
Например так см.приложение

Приложение:

---------
Мальчик-извращенец прочел деду Морозу с табуретки всего Пастернака!

Ответ отправил: Strawberry (статус: 5-ый класс)
Ответ отправлен: 26.03.2007, 16:32


Вопрос № 79.876
Здравствуйте! При записи число из колонки Стоимость многострочной части документа сохраняется в справочнике Номенклатура. Правильно я описала или можно как-то по-другому описать эту процедуру? Спасибо огромное заранее.

Приложение:

Отправлен: 27.03.2007, 00:06
Вопрос задала: Darina (статус: Посетитель)
Всего ответов: 5
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Palkin
Здравствуйте, Darina!
Попробуйте Воспользоваться методом НайтиЭлемент()

Приложение:

Ответ отправил: Palkin (статус: 4-ый класс)
Ответ отправлен: 27.03.2007, 06:09
Оценка за ответ: 5
Комментарий оценки:
Спасибо!

Отвечает: Vlad Skorochod
Здравствуйте, Darina!
Цикл нужно укоротить иначе прибольших справочниках будет долго проводиться документ.
Смотрим приложение :

Приложение:

Ответ отправил: Vlad Skorochod (статус: 3-ий класс)
Ответ отправлен: 27.03.2007, 08:46
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Вы несомненно правы!

Отвечает: Strawberry
Здравствуйте, Darina!
Перебирать весь справочник нелогично, так проще и быстрее :
Спр=СоздатьОбъект("Справочник.Номенклатура");
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
//Спр.ВыбратьЭлементы();
//Пока Спр.ПолучитьЭлемент()=1 Цикл
//Если Товар=Спр.ТекущийЭлемент() Тогда
Спр.НайтиЭлемент(Товар);
Товар.ПлановаяСебестоимость.Установить(ДатаДок,Стоимость);
КонецЕсли;
//КонецЦикла;
КонецЦикла;

---------
Мальчик-извращенец прочел деду Морозу с табуретки всего Пастернака!
Ответ отправил: Strawberry (статус: 5-ый класс)
Ответ отправлен: 27.03.2007, 09:28
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Вы несомненно правы!

Отвечает: Gimmy
Здравствуйте, Darina!
Ваш вариант очень долгий. Вот мой вариант

Приложение:

Ответ отправил: Gimmy (статус: 1-ый класс)
Ответ отправлен: 27.03.2007, 10:18
Оценка за ответ: 5
Комментарий оценки:
Спасибо! Вы несомненно правы!

Отвечает: Ovr1970
Здравствуйте, Darina!
Вам вообще не нужен поиск в справочнике. Если Товар - это всегда элемент справочника "Номенклатура", то тогда в цикле по строкам документа нужно написать условие "Если Товар.Выбран()=1 тогда", если это может быть другой справочник, тогда как в приложении

Приложение:

Ответ отправил: Ovr1970 (статус: Студент)
Ответ отправлен: 30.03.2007, 13:46


Вопрос № 79.899
Здравствуйте. Вопрос по 1С 7.7
На форме расположен список зачений. Можно ли программно изменять его размер на форме (количество видимых строк) и как это сделать
Отправлен: 27.03.2007, 06:33
Вопрос задал: Zlm (статус: Посетитель)
Всего ответов: 1
Мини-форум вопроса >>> (сообщений: 2)

Отвечает: Ovr1970
Здравствуйте, Zlm!
Теоретически это возможно, но средставми 1С нет.
Нужно написать самому или найти компоненту, которая по имени элемента формы может вернуть его hwnd и с помощью Windows API изменит размер.
Ответ отправил: Ovr1970 (статус: Студент)
Ответ отправлен: 30.03.2007, 12:10
Оценка за ответ: 4
Комментарий оценки:
Спасибо за ответ


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

* Код программы, выдержки из закона и т.п. дополнение к вопросу.
Эта информация будет отображена в аналогичном окне как есть.

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Идея, дизайн, программирование: Калашников О.А.
Email: support@rusfaq.ru, Тел.: +7 (926) 535-23-31
ООО "Мастер-Эксперт Про", Москва, 2007
Авторские права | Реклама на портале
Версия системы: 4.46 от 18.03.2007
Яндекс Rambler's Top100

В избранное